我正在浏览Rails 5测试处方中的示例项目--构建一个健康的代码库(发布日期: 2018)书,并遇到以下方法:
#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提示,只是为了指向我应该阅读的地方,我会非常感激。
发布于 2019-06-30 17:02:22
&用于将块作为块传递给方法(在参数列表中也使用了另一种方式使隐式块成为参数),它对传递的对象隐式调用to_proc。
Symbol#to_proc for :symbol制作proc{|param| param.symbol }
所以您的代码等同于tasks.all?{|task| task.complete? }
https://stackoverflow.com/questions/56823452
复制相似问题