我在学习 Ruby 时注意到,每种方法的这两种用法都可以工作并产生相同的输出,我想知道 Ruby 是如何实现这一点的(以及如何在我自己的函数中实现这一点):
my_array = [["hello","goodbye"],["picture","perfect"]]
my_array.each do |array|
puts array[0] + " " + array[1]
end
my_array.each do |first, second|
puts first + " " + second
end
我的理解是在编写接受代码块的方法的定义时,使用yield方法将参数传递给代码块并调用代码块。但是如何利用 yield 方法,让它根据提供的代码块传递不同的参数呢?在示例情况下,当块内使用两个参数(即,第一个、第二个)时,yield 方法似乎传递了单个数组元素,而在块内使用一个参数(即,数组)时,它传递了数组本身。 )。