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 参考第一个答案。

数组的创建和初始化

a = Array.[](1,2,3,4)

b = Array[1,2,3,4]

c = [1,2,3,4]

d = Array.new #创建一个空数组

e = Array.new(3) #[nil,nil,nil] 初始大小3

f = Array.new(3,"xx") #["xx","xx","xx"] 初始大小3 初始值"xx"

f[0].capitalize! #=>["Xx","Xx","Xx"]

g = Array.new(3){"yy"} #=>["yy","yy","yy"]

g[0].capitalize! #=>["Yy","yy","yy"]