在Ruby中,如何以最有效的方式将数组转换为字符串?
@x = ["foo","bar"]
@x = @x.join(", ") #=> "foo, bar"
只是想知道是否有更好的方法来做到这一点。
答案 0 :(得分:8)
不能有“爆炸版”。这意味着就地改变对象。但是join
计算String
中的Array
。所以它之后不能是同一个对象。
答案 1 :(得分:6)
只是想知道是否有更好的方法来做到这一点。
您希望使用Array#*
吗?
x = ["foo","bar"]
x *", " # => "foo, bar"
注意: - 带有字符串参数的Array#*
方法将为您提供一个新的字符串对象。
答案 2 :(得分:3)
正如Arup Rakshit所提到的,当提供字符串作为参数时,Array#*
运算符被重载以调用#join
。您可以利用ruby的*=
运算符提供的语法糖。所以
a = *1..10
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a *= '|'
> "1|2|3|4|5|6|7|8|9|10"
a
> "1|2|3|4|5|6|7|8|9|10"
答案 3 :(得分:0)
您考虑过@x.to_s
了吗?我不确定你要找的是什么输出。
答案 4 :(得分:0)
更容易:
@x = ["foo","bar"]
@x.join(',').split(', ')
#=> "foo, bar"