0

我知道您可以使用将变量传递给 Ruby 代码块,yield
但是,我不知道yield这里在做什么。我知道发生了一些“盗梦空间”的事情。

def each_word
    words = %w(fuing wtrds iiha)
    words.each { | word | yield(word)  }
end
4

2 回答 2

2

您的代码将遍历%w(fuing wtrds iiha)(ie "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

因为这将产生完全相同的效果。

于 2013-07-19T17:21:11.850 回答
-4

通过一个块。

1.

each_word{|w| puts "**#{w}**"}

输出

**fuing**
**wtrds**
**iiha**

2.

each_word{|w| puts w.capitalize}

输出

Fuing
Wtrds
Iiha

等等

于 2013-07-19T17:11:04.973 回答