Ruby 数组具有 #join
方法,该方法通过连接数组元素并添加可选分隔符来生成字符串。
其他枚举(例如范围)没有相同的方法。
您可以使用#inject
来模拟行为,例如
('a'..'z').inject('') do |acc, s|
if acc.empty?
s
else
acc << ' some separator ' << s.to_s
end
end
是否有更好的方法来连接可枚举数? #join
是否因特定原因而被省略?
编辑:
我担心的一件事是将大量可枚举复制到数组。当然,这很少是一个用例,但仍然如此。例如:
(1 .. 1_000_000_000_000_000).to_a.join
因此,我对不需要生成包含所有值的数组作为中间步骤的解决方案特别感兴趣。
最佳答案
使用Array#join
:
('a'..'z').to_a.join(' some separator ')
或者(实际上相同):
[*'a'..'z'].join(' some separator ')
关于ruby - 连接可枚举以在 Ruby 中生成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52328770/