所以,我刚刚了解到,而不是写这样的东西:
[1,2,3,4,5].inject {|x,y| x + y} => 15
我可以写
[1,2,3,4,5].inject(:+) => 15
我还了解到,而不是写作
[1,2,3,4,5].select {|x| x.even?} => [2,4]
我可以写
[1,2,3,4,5].select(&:even?) => [2,4]
我的问题是为什么一个(选择)使用&而另一个(注入)不使用。我确信这:是因为even?和+被处理在符号上,但我希望澄清为什么&在一个中使用以及为什么:使用。
另外,我知道我可以做这些符号不仅仅是inject和select。
非常感谢!