我在学习Ruby的时候注意到,每种方法的这些用法都工作并产生相同的输出,而且我想知道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方法在块内使用两个参数(即第一个,第二个)时传递单个数组元素,并且当在块内使用一个参数时,它传递数组本身(即数组)。
@RoneyMichael纠正我,如果我错了,但我不认为这是一个解决方案。 splat操作符旨在用于参数,而不是参数。而我的问题是关于如何构建我的产量陈述和我传递给他们的论点。 – voltair 2013-03-19 06:34:19
哦对!我的错。 – 2013-03-19 07:37:32