def reverse_words(s)
s.split.map(&:reverse).join(' ')
end
此代码会反转句子中的每个单词。但我不明白代码中的“&:”。有人可以向我解释一下吗?
答案 0 :(得分:1)
map
期望一个带有一个参数的代码块。你通常做的是在该论点上调用reverse:
map {|elt| elt.reverse }
使用&
语法,您可以将其缩短为
map(&:reverse)
冒号用于在名称reverse
之外创建一个符号。
答案 1 :(得分:0)
&
表示reverse
正在引用一个函数,而不是一个块。
此方法假定调用者将传递一个String对象。
&
告诉map方法输入是对方法的引用而不是标准块