1
我看到了它的一些示例Ruby代码有人张贴英寸这是这样的:什么是“:名称”是指在Ruby中
a.sort_by(&:name)
其中a
是一个数组或ActiveRecord对象和:name
是属性之一。
我从来没有见过&:name
和Ruby的Symbol类文件说一无所知。可能很简单。 :)
我看到了它的一些示例Ruby代码有人张贴英寸这是这样的:什么是“:名称”是指在Ruby中
a.sort_by(&:name)
其中a
是一个数组或ActiveRecord对象和:name
是属性之一。
我从来没有见过&:name
和Ruby的Symbol类文件说一无所知。可能很简单。 :)
一元Ampersand是函数/块/λ
在这种情况下地址,这意味着该.sort_by
函数将使用名为name
每个a
的元素的功能进行比较
主要是它使用别的东西,像这样:
[1,2,3].map{ |x| x.to_s } # ['1','2','3']
这可以缩短为:
[1,2,3].map(&:to_s)
所以,你的情况,a.sort_by(&:name)
是一个速记:
a.sort_by{ |x| x.name }