我是计算机科学专业,我们只是在学习Ruby。我对这个我们应该解决的问题非常迷茫,主要是语法问题。以下是我们要做的事情:
编写一个方法,该方法接受一个字符串数组和一个块,并在每个字符串上调用此块。回想一下,调用块的关键字是yield。调用的语法如下:
method(["blah", "Blah"]) {...}
通过传递一个块来测试方法,该块打印反向应用于每个字符串的结果。通话结束后打印出原始阵列。 通过传递一个调用reverse的块来再次测试它!打印出原始数组。观察差异,在评论中解释。
我不知道如何解决这个问题。我特别擅长阻止和屈服。
答案 0 :(得分:3)
def my_method(array, &block)
array.each{|a| yield a}
end
array = ["one", "two", "three"]
my_method(array) do |a|
puts a.reverse
end
#=> eno
#=> owt
#=> eerht
array
#=> ["one", "two", "three"]
my_method(array) do |a|
puts a.reverse!
end
#=> eno
#=> owt
#=> eerht
array
#=> ["eno", "owt", "eerht"]