我正在學習如何在Ruby中使用符號,並意識到它們主要作爲變量的引用,散列表中的鍵,甚至是作爲在方法中發送塊的方式。使用符號引用Ruby中的塊例如:+,: - ,:*
我的問題是,什麼是符號,如:+
:-
:*
,當我在方法中使用它們時引用?
例如使用:+
總結中的所有值的數組:
puts [1,2,3].reduce(:+)
=> 6
給出了相同的結果:
puts [1,2,3].reduce {|sum, i| sum += i}
=> 6
,如果我創造我自己的版本:+
a = lambda {|sum,i| sum += i}
puts [1,2,3].reduce(&a)
=> 6
我的第一個因此認爲:+
引用{|sum, i| sum += i}
作爲一個明確的塊,但我很難找到信息來確認。
一些信息在這裏:http://stackoverflow.com/questions/4014190/passing-an-operator-to-a-function –
謝謝你的鏈接! –