zoukankan      html  css  js  c++  java
  • Ruby-Array数组

    1、创建数组

    a=Array.new(6,obj=nil)  #=> [nil, nil, nil, nil, nil, nil] 设置默认值
    a=Array.new(6)           #=> [nil, nil, nil, nil, nil, nil] 默认值为nil
    a=Array.new(6,obj=1){|obj| obj+1}  #=> [1, 2, 3, 4, 5, 6] 默认值进行块里面的迭代
    a=%w{1 2 3 4 5 6}     #=> [1, 2, 3, 4, 5, 6]
    a=[1, 2, 3, 4, 5, 6]      #=> [1, 2, 3, 4, 5, 6]

    2、数组操作

    require 'iconv'

    methods=[
      ["a","数组"],
      ['a.length',"长度"],
      ['a[-1]','倒数第一个'],
      ['a[10]','超出数组的长度下标都表示nil'],
      ['a[2,3]','表示下标从2开始的连续3个数组段'],
      ['a[1..3]','表示下标从1到下标3的数组段'],
      ['a[1..3]','表示下标从1到下标2的数组段,不包含最后一个数'],
      ['a.delete_at(0)','把第一个元素给删除了'],
      ['a.insert(0, 1)','把1插入到数组开始处'],
      ['a.slice!(1, 2)','(slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素'],
      ['a<<7','添加到数组末尾 同 a.push(7)'],
      ['a.pop(2)','删除末尾2个元素  同 a.slice!(-1,2)'],
      ['a.shift(2)','删除前面两个元素 同 a.slice!(0,2)'],
      ['a.unshift(1,2)','前面插入两个元素 同 a.insert(0, 1,2)'],
      ['a=[0]+a','[(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]'],
      ]
    methods.each { |method| puts "#{method[0]} => #{eval(method[0])} # #{Iconv.conv("GB18030","UTF-8",method[1]) }" }

    为了达到输出这种格式  “a => 123456 # 数组”而又不用每个去格式化,所有可以利用ruby的 eval动态执行代码,由于有中文所以用到了

    Iconv.conv 方法转码。

    输出如下

    a => 123456 # 数组
    a.length => 6 # 长度
    a[-1] => 6 # 倒数第一个
    a[10] =>  # 超出数组的长度下标都表示nil
    a[2,3] => 345 # 表示下标从2开始的连续3个数组段
    a[1..3] => 234 # 表示下标从1到下标3的数组段
    a[1..3] => 234 # 表示下标从1到下标2的数组段,不包含最后一个数
    a.delete_at(0) => 1 # 把第一个元素给删除了
    a.insert(0, 1) => 123456 # 把1插入到数组开始处
    a.slice!(1, 2) => 23 # (slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素
    a<<7 => 14567 # 添加到数组末尾 同 a.push(7)
    a.pop(2) => 67 # 删除末尾2个元素  同 a.slice!(-1,2)
    a.shift(2) => 14 # 删除前面两个元素 同 a.slice!(0,2)
    a.unshift(1,2) => 125 # 前面插入两个元素 同 a.insert(0, 1,2)
    a=[0]+a => 0125 # [(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]

  • 相关阅读:
    Android下拉刷新-SwipeRefreshLayout,RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout)
    自定义EditText实现一键删除数据
    Androidstudio 点9图报错的问题
    安卓Design包之CoordinatorLayout配合AppBarLayout,ToolBar,TabLaout的使用
    深入了解Hibernate的缓存使用
    跟大牛之间关于hibernate的一些探讨记录
    oracle第一招之神马都是浮云
    大鹏教你如何开发购物网站(里面都是满满的爱)
    JSTL&EL(程序员必看之一)
    动态网页开发
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/4451469.html
Copyright © 2011-2022 走看看