1

可能重复:
你如何称呼 Ruby 中的 &: 运算符?

我总是看到'.map(&:chomp)'

我知道 chomp 和 map 做什么,但我想知道 &: 做什么,我想知道为什么在谷歌搜索 30 分钟后我无法在网上找到它.....

4

1 回答 1

5

它是Symbol#to_proc, 它将符号转换为一个 proc,它尝试在其参数上调用给定的方法,并返回结果。

x = :reverse.to_proc

x.call("asdf") # "fdsa", like calling "asdf".reverse

在您的情况下,.map(&:chomp)相当于.map { |x| x.chomp }.

如果你在谷歌上找不到它,那是因为你在谷歌上搜索错了。这是一个著名的 Ruby 习语。

于 2013-01-10T03:17:48.720 回答