Ruby 数组创建,Array.new 与 [] [英] Ruby array creation, Array.new vs []
本文介绍了Ruby 数组创建,Array.new 与 []的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这两种说法有什么区别?我在我的 rails 应用程序中使用它们,在我看来它们似乎做同样的事情
array_a = Array.newarray_b = []
解决方案
这两个语句在功能上是相同的.Array.new
但是可以接受参数和块:
Array.new # =>[]Array.new(2) # =>[无,无]Array.new(5,"A") # =>["A","A","A","A","A"]a = Array.new(2,Hash.new)a[0]['cat'] = '猫'# =>[{"cat"=>"feline"},{"cat"=>"feline"}]a[1]['cat'] = '菲利克斯'# =>[{"cat"=>"Felix"},{"cat"=>"Felix"}]a = Array.new(2){Hash.new} # 多个实例a[0]['cat'] = '猫'a # =>[{"cat"=>"feline"},{}]正方形 = Array.new(5){|i|i*i}正方形 # =>[0,1,4,9,16]copy = Array.new(squares) # 通过复制初始化平方[5] = 25正方形 # =>[0,1,4,9,16,25]复制# =>[0,1,4,9,16]
注意:以上示例摘自Programming Ruby 1.9>
What's the difference between these two statements? I use them in my rails app and to me it looks like they do the same thing
array_a = Array.new
array_b = []
解决方案
Those two statements are functionally identical. Array.new
however can take arguments and a block:
Array.new # => []
Array.new(2) # => [nil,nil]
Array.new(5,"A") # =>["A","A","A","A","A"]
a = Array.new(2,Hash.new)
a[0]['cat'] = 'feline'
a # => [{"cat"=>"feline"},{"cat"=>"feline"}]
a[1]['cat'] = 'Felix'
a # => [{"cat"=>"Felix"},{"cat"=>"Felix"}]
a = Array.new(2){Hash.new} # Multiple instances
a[0]['cat'] = 'feline'
a # =>[{"cat"=>"feline"},{}]
squares = Array.new(5){|i|i*i}
squares # => [0,1,4,9,16]
copy = Array.new(squares) # initialized by copying
squares[5] = 25
squares # => [0,1,4,9,16,25]
copy # => [0,1,4,9,16]
Note: the above examples taken from Programming Ruby 1.9
这篇关于Ruby 数组创建,Array.new 与 []的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文