#ruby数组可以容纳不同的对象,并且没有多维数组的概念 #数组的定义=========== a = Array.new a = Array.new(5) #创建 5个nil 元素的数组 [nil,nil,nil,nil,nil] a = Array.new(5,1) #创建5个 元素都是1的数组 [1,1,1,1,1] a = [] #创建一个空数组 a = [1,"a",3,2] %w(one two three) #返回的是 ["one","two","three"] #数组小妙用: 利用数组并行赋值 a,b,c,d = [1,"a",[1,2],(1..5)] #运算和常用方法============ [1,2]<<3 #返回 [1,2,3] [1,2]+[1,3] #返回 [1,2,1,3] [1,2,3]-[1,4] #返回 [2,3] [1,2,3]&[3,4] #返回[3] [1,2,3]|[3,4] #返回[1,2,3,4] [1,2]*2 #如果*号后面是数字,会进行重复 ,返回[1,2,1,2] [1,2]*'--' #如果是字符串,会用该字符串连接数组,返回一个字符串, 返回 '1--2' #枚举能用的方法都能用在数组上 ary.size/ary.length #数组包含元素的个数 ary.concat(other_array) #把other_array中的元素添加到arr中 ary.delete(obj) #删除数组中和obj相等的元素,如果找到则返回obj,否则返回nil #eg: a=[1,2,3,3] a.delete(3) # a = [1,2] 并且返回3 ary.delete(index) #删除指定索引的元素,并返回删除的obj ary.delete_if{|item| block} #删除符合条件(使block为true)的元素 ary.first/ary.last #返回数组的第一个元素/最后一个元素 ary.compact #返回一个数组的副本,并删除数组中的nil元素 [nil,1,2,nil,3,4].compact #返回 [1,2,3,4] ary.flattern #递归数组中的数组,并返回一个大数组 [1,2,[3,4],5].flattern #返回[1,2,3,4,5] ary.index(obj) #返回元素的索引 [1,2,3].index(3) #返回2 ary.insert(index,obj) #将某个对象插入到数组的index中 ary.join(separator) #用分隔符合并数组并且返回一个字符串 [1,2,3].join("-") #返回 "1-2-3" ary.pop/ary.shift #删除数组中的最后一个/开头一个 元素 ary.push(obj) #将obj追加到数组的后面 ary.replace(other_array) #使用other_array替换原来的内容 ary.reverse #返回一个反序的数组