Ответ 1
Вы можете использовать <<
для добавления к строке на месте.
s = "foo"
old_id = s.object_id
s << "bar"
s #=> "foobar"
s.object_id == old_id #=> true
Чтобы добавить к существующей строке, это то, что я делаю.
s = 'hello'
s.gsub!(/$/, ' world');
Есть ли лучший способ добавить к существующей строке.
Прежде чем кто-нибудь предложит следующее ответное сообщение, покажите, что этот не работает.
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
В приведенном выше случае object_id будет отличаться для двух случаев.
Вы можете использовать <<
для добавления к строке на месте.
s = "foo"
old_id = s.object_id
s << "bar"
s #=> "foobar"
s.object_id == old_id #=> true
вы также можете использовать следующее:
s.concat("world")
Могу ли я спросить, почему это важно?
Я знаю, что это не прямой ответ на ваш вопрос, но тот факт, что вы пытаетесь сохранить идентификатор объекта строки, может указывать на то, что вы должны снова взглянуть на то, что вы пытаетесь сделать.
Возможно, вы обнаружите, что использование идентификатора объекта строки приведет к ошибкам, которые довольно сложно отследить.
Иными словами:
s.insert(-1, ' world')