1

我有一个包含三个单词的数组

three_words = ["if", "the", "printed"]

这些词在类内部的实例方法中,我想要它,这样当我在测试中调用实例方法时,它会打印出来:

"if the printed" 

我尝试将以下内容添加到最后的方法中,但是当我在字符串上调用实例方法时,它仍然返回 ["if", "the", "printed"]

three_mcwords.each do |word|
  word + " " 
end
4

1 回答 1

2

你需要寻找方法Array#join,如three_mcwords.join(" ")。但是您调用Array#each了 ,它返回了接收器(根据MRI实现),您在其上调用了方法#each

你打电话three_mcwords.each do |word|..。看到这里的接收者是three_mcwords,它持有数组 ["if", "the", "printed"]的引用,因此当each块竞争时,你得到了数组 ["if", "the", "printed"]

例子 :

['foo', 'bar'].each { |str| "hi" + str } # => ["foo", "bar"]
['foo', 'bar'].join(" ") # => "foo bar"

两者都按照在MRI中实施的方式工作。

于 2014-03-16T23:57:07.097 回答