Um an eine vorhandene Zeichenfolge anzuhängen, mache ich Folgendes.
s = 'hello'
s.gsub!(/$/, ' world');
Gibt es eine bessere Möglichkeit, eine vorhandene Zeichenfolge anzuhängen?
Bevor jemand die folgende Antwort vorschlägt, zeige ich, dass diese nicht funktioniert
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
Im obigen Fall unterscheidet sich object_id in zwei Fällen.
<<
ändert sich bereits der Status des Objekts. Das tut es auchconcat
.widget.notes.where(:author_id => a).first
vermutlich jedes Mal ein neues Objekt zurückgegeben wird, das eine eigene unabhängige Zeichenfolge hat.Sie können auch Folgendes verwenden:
quelle
<<
sollte auch verkettbar sein, da es den String zurückgibt.Kann ich fragen, warum das wichtig ist?
Ich weiß, dass dies keine direkte Antwort auf Ihre Frage ist, aber die Tatsache, dass Sie versuchen, die Objekt-ID einer Zeichenfolge beizubehalten, könnte darauf hindeuten, dass Sie sich erneut ansehen sollten, was Sie tun möchten.
Sie können beispielsweise feststellen, dass das Verlassen auf die Objekt-ID einer Zeichenfolge zu Fehlern führt, die nur schwer aufzuspüren sind.
quelle
Noch ein anderer Weg:
quelle
Hier ist ein anderer Weg:
quelle