我在學習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