我正在学习如何在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 –
谢谢你的链接! –