Присоединение к существующей строке - PullRequest
98 голосов
/ 01 марта 2010

Чтобы добавить существующую строку, это то, что я делаю.

s = 'hello'
s.gsub!(/$/, ' world');

Есть ли лучший способ добавить к существующей строке.

Прежде чем кто-то предложит следующий ответ, покажите, что этот не работает

s = 'hello'
s.object_id
s = s + ' world'
s.object_id 

В приведенном выше случае object_id будет отличаться для двух случаев.

Ответы [ 4 ]

159 голосов
/ 01 марта 2010

Вы можете использовать << для добавления строки на место.

s = "foo"
old_id = s.object_id
s << "bar"
s                      #=> "foobar"
s.object_id == old_id  #=> true
52 голосов
/ 01 марта 2010

Вы также можете использовать следующее:

s.concat("world")
4 голосов
/ 01 марта 2010

Могу я спросить, почему это важно?

Я знаю, что это не прямой ответ на ваш вопрос, но тот факт, что вы пытаетесь сохранить идентификатор объекта строки, может указывать на то, что вам следует снова посмотреть на то, что вы пытаетесь сделать.

Вы можете обнаружить, например, что использование идентификатора объекта строки приведет к ошибкам, которые довольно сложно отследить.

2 голосов
/ 02 декабря 2016

Еще один способ:

s.insert(-1, ' world')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...