我有一个包含三个单词的数组
three_words = ["if", "the", "printed"]
这些单词位于类的实例方法中,我想要它,以便当我在测试中调用实例方法时,它打印出来像:
"if the printed"
我尝试在最后添加以下方法,但是当我在字符串上调用实例方法时,它仍然会返回[“if”,“the”,“printed”]
three_mcwords.each do |word|
word + " "
end
答案 0 :(得分: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 中实施。