作为一个ruby编程练习,我想制作一个函数“reverser”,它可以反转字符串的每个单词。但是,它应该在块的内容上操作,而不是在参数上操作所以

reverser {"hello dolly"}

应该返回“olleh yllod”我知道如何做一个类似的方法:
def reverse_words(string)
  words=string.split()
  words.map! {|word| word.reverse}
  words.join(" ")
end

但是,该方法应该对块的内容进行操作,而不是对“normal”参数进行操作到目前为止我得到了这个:
def reverser(&prc)
  yield.reverse
end

但是,这只会反转一个单词,而不是一个句子中的每个单词。我真的不知道如何对以这种方式作为参数传递的块的内容获取“句柄”有什么想法吗?

最佳答案

def reverser
  yield.split.map(&:reverse)
end

reverser {"hello dolly"}
 => ["olleh", "yllod"]

10-08 04:26