首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:+与&:+的区别

:+与&:+的区别
EN

Stack Overflow用户
提问于 2014-07-01 08:50:32
回答 1查看 134关注 0票数 1

我有这样的代码

代码语言:javascript
复制
 list << num if num.to_s.split("").map(&:to_i).map(&:factorial).inject(:+) == num

它可以工作,我想知道没有inject前面的& (符号)是如何工作的。我想找人解释一下:+&:+之间的区别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 08:55:04

&:+被翻译成proc,而:+是符号。inject支持接收符号,这些符号在内部被转换为proc:

如果指定一个块,则为枚举中的每个元素传递一个累加器值(备注)和该元素。如果您指定了一个符号,那么集合中的每个元素都将被传递给备注的命名方法。在任何一种情况下,结果都会成为备忘录的新值。在迭代结束时,备注的最终值是该方法的返回值。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24506081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档