所以,我刚刚了解到,而不是写这样的东西:
[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
。
非常感谢!