什么&:to_s在b.map(&:to_s)中的含义
我是ruby的新手,这个问题对你来说似乎很愚蠢,但我没有找到任何合理的解释。
比如我有
array = [1,2,3,4,5,6]
而且我想从这个字符串数组中出于某些原因
其中一种方法是这样做:
str_arr = array.map {|i| i.to_s}
在一些网络资源我发现了以下内容:
array.map(&:to_s)
这也是一样的。 有人可以解释什么&:to_s
意味着??
它是语法糖,将to_s
转换为可以传递给map
的块,有点像将to_s
作为函数对象传递。 基本上,它是简写
array.map(&:to_s.to_proc) # Or to see the individual steps: proc = :to_s.to_proc array.map(&proc)
另请参见Ruby(&:name)在Ruby中的含义是什么? 。