我有一个包含三个单词的数组
three_words = ["if", "the", "printed"]
这些词在类内部的实例方法中,我想要它,这样当我在测试中调用实例方法时,它会打印出来:
"if the printed"
我尝试将以下内容添加到最后的方法中,但是当我在字符串上调用实例方法时,它仍然返回 ["if", "the", "printed"]
three_mcwords.each do |word|
word + " "
end
我有一个包含三个单词的数组
three_words = ["if", "the", "printed"]
这些词在类内部的实例方法中,我想要它,这样当我在测试中调用实例方法时,它会打印出来:
"if the printed"
我尝试将以下内容添加到最后的方法中,但是当我在字符串上调用实例方法时,它仍然返回 ["if", "the", "printed"]
three_mcwords.each do |word|
word + " "
end
你需要寻找方法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中实施的方式工作。