ruby - 加入可枚举以在 Ruby 中生成字符串
问题描述
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 ')
推荐阅读
- windows - 有没有办法检测应用程序的窗口是否没有被其他窗口完全覆盖?
- sql - 如何加入四个表,具有多个约束
- javascript - 如何在数据表中显示 5 行而不是默认的 10 行?
- c# - c#我如何重置进程栏并重新启动它
- redis - Allowing access to redis port for only specific servers on Windows
- haskell - 给表达式类型
- c# - Stop recurring jobs (Hangfire) before deployment to production environment
- docker - Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? on mac
- git - 如何使用 gitlab api 从存储库提交中检索原始文件内容?
- c# - 如何获取未知列表类型(列表
)