什么是将字符串数组转换为字符串的最佳惯用(最干净)方法,同时保留每个元素的封闭引号.
换句话说,从这个:
a = ["file 1.txt", "file 2.txt", "file 3.txt"]
Run Code Online (Sandbox Code Playgroud)
我需要得到这个
"'file 1.txt' 'file 2.txt' 'file 3.txt'"
Run Code Online (Sandbox Code Playgroud)
单引号和双引号可以在这里互换.我所知道的最好的方法是使用map和inject/reduce.
例如: a.map{|dir| "'" + dir + "'"}.join(' ')
eg2: a.reduce("'"){|acc, dir| acc += dir+"' "}
通过避免临时字符串创建(+运算符)可以提高性能.这不是我的主要问题.是否有更简洁的方法来实现相同的结果?
cap*_*ete 27
较短并不总是意味着更简单.您的第一个示例简洁,易读且易于更改,而不会造成不必要的复杂.
a.map { |s| "'#{s}'" }.join(' ')
Run Code Online (Sandbox Code Playgroud)
sta*_*son 13
试用
"'#{a.join("' '")}'"
Run Code Online (Sandbox Code Playgroud)
或者如果打高尔夫球
?'+a*"' '"+?'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12110 次 |
| 最近记录: |