首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个语法在Ruby中意味着什么?Tasks.all?(&:完成?)

这个语法在Ruby中意味着什么?Tasks.all?(&:完成?)
EN

Stack Overflow用户
提问于 2019-06-30 08:24:51
回答 1查看 212关注 0票数 3

我正在浏览Rails 5测试处方中的示例项目--构建一个健康的代码库(发布日期: 2018)书,并遇到以下方法:

代码语言:javascript
复制
#pages 29-30 of the book
class Project
  .
  .
  def done?
    tasks.all?(&:complete?) #only this line confused me, especially the `&` part
  end
end

语法在我看来很奇怪,因为我刚刚学习了Ruby & Rails不止一个month..any提示,只是为了指向我应该阅读的地方,我会非常感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-30 17:02:22

&用于将块作为块传递给方法(在参数列表中也使用了另一种方式使隐式块成为参数),它对传递的对象隐式调用to_proc

Symbol#to_proc for :symbol制作proc{|param| param.symbol }

所以您的代码等同于tasks.all?{|task| task.complete? }

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

https://stackoverflow.com/questions/56823452

复制
相关文章

相似问题

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