这是我正在尝试做的,但它不起作用。
array = [1,2,3,4,5]
array.each do |val1, val2, val3, val4, val5|
puts "#{val1} topic is #{val2}, #{val3} topic is #{val4}, All topics ${val5}"
end
最佳答案
array.each
将为 array 中的每个元素执行一次 block (
,每次都将该元素用作 block 的第一个参数。do
和 end
之间的部分)
这意味着第一次执行 block 时,val1
将等于1
,而val2
、val3
等将是 nil
因为只有一个值被传递给 block 。第二次执行该 block 时,val1
将等于 2
。 val2
、val3
等每次都会是nil
。
如果要将数组的元素提取到变量中,则不需要循环。您需要做的就是:
val1, val2, val3, val4, val5 = array
puts "#{val1} topic is #{val2}, #{val3} topic is #{val4}, All topics #{val5}"
不过,这可能不是必需的,因为您可以在字符串插值 (#{...}
) 中直接引用数组元素:
puts "#{array[0]} topic is #{array[1]}, #{array[2]} topic is #{array[3]}, All topics #{array[4]}"
关于ruby 遍历数组并提取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25555468/