Ruby “注入”不在累加器中添加空白

Ruby “注入”不在累加器中添加空白,ruby,string,immutability,Ruby,String,Immutability,在此代码中: b = ["here", "are", "things"] b.inject { |str, v| str+="#{v} " } # => "hereare things " 返回值不应该是“这里有东西”?我假设它将第一个值传递给累加器str。有没有办法返回“这里有东西” 我假设它将第一个值传递给累加器 正确,因为未定义初始值,所以集合的第一个元素将成为初始值。修理提供初始值: b = ['here', 'are', 'things'] b.inject('') { |me

在此代码中:

b = ["here", "are", "things"]
b.inject { |str, v| str+="#{v} " }
# => "hereare things "
返回值不应该是
“这里有东西”
?我假设它将第一个值传递给累加器
str
。有没有办法返回“这里有东西”

我假设它将第一个值传递给累加器

正确,因为未定义初始值,所以集合的第一个元素将成为初始值。修理提供初始值:

b = ['here', 'are', 'things']
b.inject('') { |memo, elem| memo + "#{elem} " } # => "here are things "
我假设它将第一个值传递给累加器

正确,因为未定义初始值,所以集合的第一个元素将成为初始值。修理提供初始值:

b = ['here', 'are', 'things']
b.inject('') { |memo, elem| memo + "#{elem} " } # => "here are things "

在单词前加空格,如下所示。结果中没有尾随空格

您也可以执行下面的操作,但仍然没有尾随空间

['here', 'are', 'things'].inject { |m, e| "#{m} #{e}" }
#=> "here are things"

在单词前加空格,如下所示。结果中没有尾随空格

您也可以执行下面的操作,但仍然没有尾随空间

['here', 'are', 'things'].inject { |m, e| "#{m} #{e}" }
#=> "here are things"

y、 我知道我可以用join-我对这里的行为更好奇。我只在加法时使用了inject,但我只是好奇我是否可以按照我想要的方式使用它,我知道我可以使用join,我更好奇这里的行为。我只使用了inject来累加整数,但我只是好奇我是否可以按照我想要的方式使用它看着他的问题,尾随空格似乎是可取的。我明白了,我试图模拟
join
行为看着他的问题,尾随空格似乎是可取的。我明白了,我试图模拟
join
行为