数组
a=[]
b=Array.new
irb(main):001:0> c =Array.new(3)
=> [nil, nil, nil]
irb(main):002:0> c =Array.new(3,2)
=> [2, 2, 2]
#方法一
#注意,这里每个元素都只是引用而已,是同一份,如果要创建不同的,用下面的第二种方法
irb(main):005:0> d = Array.new(3,'abc')
=> ["abc", "abc", "abc"]
irb(main):006:0> d[0][0]='d'
=> "d"
irb(main):007:0> d
=> ["dbc", "dbc", "dbc"]
# 方法二
irb(main):008:0> e = Array.new(3){'abc'}
=> ["abc", "abc", "abc"]
irb(main):009:0> e[0][0]='e'
=> "e"
irb(main):010:0> e
=> ["ebc", "abc", "abc"]
# 定义字符串Array
%w
irb(main):015:0> arr=%w(a b c) # 注意不要加逗号,否则会只有一个元素
=> ["a", "b", "c"]
方法
irb(main):012:0> arr=%w(a,b,c)
=> ["a,b,c"]
irb(main):013:0> arr[0]
=> "a,b,c"
irb(main):014:0> arr.fetch(0)
=> "a,b,c"
irb(main):015:0> arr=%w(a b c)
=> ["a", "b", "c"]
irb(main):016:0> arr[0]
=> "a"
irb(main):017:0> arr.fetch(0)
=> "a"
irb(main):018:0> arr.fetch(5,'default') # 获取get
=> "default"
irb(main):019:0> arr.include?('c') # 是否包含
=> true
irb(main):020:0> arr.empty? # 是否为空
=> false
irb(main):021:0> arr.push('end') # 追加
=> ["a", "b", "c", "end"]
irb(main):022:0> arr[8]='eight'
=> "eight"
irb(main):023:0> arr
=> ["a", "b", "c", "end", nil, nil, nil, nil, "eight"]
irb(main):024:0> arr.delete_at(5) # 按索引位置删除
=> nil
irb(main):025:0> arr
=> ["a", "b", "c", "end", nil, nil, nil, "eight"]
irb(main):026:0> arr.delete(nil) # 删除某个值,有多个会删除多个
=> nil
irb(main):027:0> arr
=> ["a", "b", "c", "end", "eight"]
irb(main):028:0> arr.push('eight') # 追加
=> ["a", "b", "c", "end", "eight", "eight"]
irb(main):029:0> arr.uniq # 去重
=> ["a", "b", "c", "end", "eight"]
irb(main):030:0> arr.shuffle # 随机
=> ["a", "eight", "end", "b", "c", "eight"]
irb(main):031:0> arr=['a',[1,2],[3,4]]
=> ["a", [1, 2], [3, 4]]
irb(main):032:0> arr.flatten # 打散
=> ["a", 1, 2, 3, 4]
irb(main):033:0> arr.each{|e| p e} # 正序
"a"
[1, 2]
[3, 4]
irb(main):034:0> arr.reverse_each{|e| p e} # 逆序
[3, 4]
[1, 2]
"a"
irb(main):036:0> arr.each_with_index{|e,i| p [i,e]} # 打印带索引
[0, "a"]
[1, [1, 2]]
[2, [3, 4]]
irb(main):038:0> arr=[1,-1,2,3,-4]
=> [1, -1, 2, 3, -4]
irb(main):039:0> arr.sort # 排序
=> [-4, -1, 1, 2, 3]
irb(main):040:0> arr.select{|e| e>0} # 按条件选择
=> [1, 2, 3]
irb(main):041:0> arr << nil # 追加nil
=> [1, -1, 2, 3, -4, nil]
irb(main):042:0> arr.compact # 去掉nil
=> [1, -1, 2, 3, -4]
irb(main):043:0> arr.any?{|e| e<0} # 是否有小于0的值
=> true