以下代码如何给出[0,2,4,6,8,10,12,14,16,18]的o / p
nums = Array.new(10) { |e| e = e * 2 }
puts "#{nums}"
答案 0 :(得分:0)
我认为这里的想法是e
表示作为"number"
块中的参数传递的每个{}
,将其填充为数组中2
的倍数,并且你最后通过传递一个参数来操纵它。在http://ruby-doc.org/core-2.2.1/Array.html
>> new_array = Array.new(10)
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
>> new_array = Array.new(10) { |e| e * 2 }
=> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>> new_array = Array.new(10) { |e| e }
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
答案 1 :(得分:0)
索引值是通过管道进入块的内容。块的返回值将放入该索引处的数组中。