作为 Ruby 编程练习,我想制作一个函数“reverser”,它可以反转字符串中的每个单词。但是,它应该对 block 的内容而不是参数进行运算。所以
reverser {"hello dolly"}
应该返回“olleh yllod”。我知道如何制作类似的方法:
def reverse_words(string)
words=string.split()
words.map! {|word| word.reverse}
words.join(" ")
end
但是,该方法应该对 block 的内容进行操作,而不是对“正常”参数进行操作。到目前为止,我得到了这个:
def reverser(&prc)
yield.reverse
end
但是,这只会反转一个单词,而不是句子中的每个单词。我不太确定如何获得以这种方式作为参数传递的 block 内容的“句柄”。有什么想法吗?
最佳答案
def reverser
yield.split.map(&:reverse)
end
reverser {"hello dolly"}
=> ["olleh", "yllod"]
关于ruby - 在 Ruby 中,对 block 的内容执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37635544/