Ruby 数组创建,Array.new 与 [] [英] Ruby array creation, Array.new vs []

查看:41
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆