【发布时间】:2013-05-17 09:22:03
【问题描述】:
所以,我刚刚学会了,而不是写这样的东西:
[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 上使用这些符号。
非常感谢!
【问题讨论】: