Подтвердить что ты не робот

Добавление к существующей строке

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

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

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

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

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

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

4b9b3361

Ответ 1

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

s = "foo"
old_id = s.object_id
s << "bar"
s                      #=> "foobar"
s.object_id == old_id  #=> true

Ответ 2

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

s.concat("world")

Ответ 3

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

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

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

Ответ 4

Иными словами:

s.insert(-1, ' world')