新手问题 Ruby 里面 &:name 是什么意思?

colinxt · May 06, 2013 · Last by colinxt replied at May 06, 2013 · 3507 hits

看到一句这个:

tags.map(&:name).join(", ")

不太明白那个&:name是什么意思?

另外,这句里面的 map 会返回一个 string 还是一个 array?

谢谢先~

实际调用的是 Symbol#to_proc,和下面这个是等价的:

tags.map { |tag| tag.name }.join(", ")

&表示 proc,也就是会 tags 元素的 name 方法,结果是 array。

#2 楼 @chenge #1 楼 @doitian 明白了~谢谢两位~

You need to Sign in before reply, if you don't have an account, please Sign up first.