作为一个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"]