Ruby:方法帮助

时间:2011-04-12 01:25:40

标签: ruby methods block yield

我是计算机科学专业,我们只是在学习Ruby。我对这个我们应该解决的问题非常迷茫,主要是语法问题。以下是我们要做的事情:

  

编写一个方法,该方法接受一个字符串数组和一个块,并在每个字符串上调用此块。回想一下,调用块的关键字是yield。调用的语法如下:

method(["blah", "Blah"]) {...}
  

通过传递一个块来测试方法,该块打印反向应用于每个字符串的结果。通话结束后打印出原始阵列。   通过传递一个调用reverse的块来再次测试它!打印出原始数组。观察差异,在评论中解释。

我不知道如何解决这个问题。我特别擅长阻止和屈服。

1 个答案:

答案 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"] 
相关问题