1

在 Ruby 中,如何以最有效的方式将数组转换为字符串?

 @x = ["foo","bar"]
 @x = @x.join(", ") #=> "foo, bar"

只是想知道是否有更好的方法来做到这一点。

4

5 回答 5

8

不可能有“爆炸版”。这将意味着就地更改对象。但join计算String出一个Array。所以之后它不可能是同一个对象。

于 2013-09-28T19:43:37.400 回答
6

只是想知道是否有更好的方法来做到这一点。

你想用这个Array#*吗?

x = ["foo","bar"]
x *", " # => "foo, bar"

注意:-Array#*带有字符串参数的方法将为您提供一个新的字符串对象。

于 2013-09-28T19:41:37.453 回答
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"
于 2013-09-28T22:44:23.377 回答
0

更容易:

@x = ["foo","bar"]
@x.join(',').split(', ')
 #=> "foo, bar"
于 2015-01-22T07:14:27.837 回答
0

你考虑过@x.to_s吗?我不确定你在寻找什么输出。

于 2013-09-28T19:41:28.310 回答