我知道您可以使用yield
将变量传递给Ruby代码块
但是,我对yield
在这里所做的事情感到很遗憾。我知道有一些“开始”
事情还在继续。
def each_word
words = %w(fuing wtrds iiha)
words.each { | word | yield(word) }
end
答案 0 :(得分:2)
您的代码将遍历%w(fuing wtrds iiha)
中的所有字词(即"fuing", "wtrds", "iiha"
),然后yield
将每个字传递到传递给each_word
方法的块。例如,如果你这样调用方法:
each_word do | word |
puts word
end
这会将每个单词打印到控制台;输出将是
fuing
wtrds
iiha
在我看来,代码最好写成:
words = %w(fuing wtrds iiha)
words.each do | word |
puts word
end
因为这将产生完全相同的效果。
答案 1 :(得分:-4)
传递一个区块。
1
each_word{|w| puts "**#{w}**"}
输出
**fuing**
**wtrds**
**iiha**
2
each_word{|w| puts w.capitalize}
输出
Fuing
Wtrds
Iiha
等