美文网首页
ruby中 &:first 的意思

ruby中 &:first 的意思

作者: kamionayuki | 来源:发表于2015-05-26 20:24 被阅读158次

经常看到一些写法,比如

array = [['a',5],['b',3],['a',5]]
array.uniq(&:first).sort_by(&:last)

我们知道,&符号在ruby中是用来调用块的,而 : 符号一般是表示symbol类型,通常用来表示方法,或者调用类的实例变量(实例变量需要在类中用attr_reader或者attr_accessor声明。)
所以,上面的表达方式等同于array.uniq {|a| a.first}.sort_by {|x| x.last}
即先按照数组的第一个元素去重,然后再按照数组的最后一个元素排序。
http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby参考第一个答案。

相关文章

网友评论

      本文标题:ruby中 &:first 的意思

      本文链接:https://www.haomeiwen.com/subject/vtyrqttx.html