Toevoegen aan een bestaande string

Toevoegen aan een bestaande string, dit is wat ik doe.

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

Is er een betere manier om aan een bestaande string toe te voegen.

Voordat iemand het volgende antwoord voorstelt, laat me zien dat dit niet werkt

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

In het bovenstaande geval zal object_id in twee gevallen anders zijn.


Antwoord 1, autoriteit 100%

Je kunt <<gebruiken om een ​​string in-place toe te voegen.

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

Antwoord 2, autoriteit 35%

u kunt ook het volgende gebruiken:

s.concat("world")

Antwoord 3, autoriteit 2%

Mag ik vragen waarom dit belangrijk is?

Ik weet dat dit geen direct antwoord op uw vraag is, maar het feit dat u probeert de object-ID van een string te behouden, kan erop wijzen dat u nog eens moet kijken naar wat u probeert te doen.

Je zou bijvoorbeeld kunnen ontdekken dat het vertrouwen op de object-ID van een string zal leiden tot bugs die vrij moeilijk op te sporen zijn.


Antwoord 4

Nog een andere manier:

s.insert(-1, ' world')

Antwoord 5

Hier is een andere manier:

fist_segment = "hello,"
second_segment = "world."
complete_string = "#{first_segment} #{second_segment}"

Other episodes