ruby中 &:first 的意思

Python016

ruby中 &:first 的意思,第1张

经常看到一些写法,比如

我们知道, &符号在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 参考第一个答案。

返回第一个元件,或第一元素,可枚举的。如果枚举是空的,第一种形式返回nil ,而第二种形式返回一个空数组。

%w[foo bar baz].first #=>"foo"

%w[foo bar baz].first(2) #=>["foo", "bar"]

%w[foo bar baz].first(10) #=>["foo", "bar", "baz"]

[].first #=>nil

为什么要数组? 用gets函数就可以了获得键盘的输入。你可以去irb里面试一下: puts "I am #{puts}" 例如: names = [] names.push(gets) 这样,输入的内容就成了数组里面的第一个元素。这个是你想要的吗?