To właśnie robię, aby dołączyć do istniejącego ciągu.
s = 'hello'
s.gsub!(/$/, ' world');
Czy istnieje lepszy sposób na dołączenie do istniejącego ciągu.
Zanim ktoś zasugeruje następującą odpowiedź, pokaż mi, że ten nie działa
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
W powyższym przypadku object_id będzie różne w dwóch przypadkach.
<<
już modyfikuje stan obiektu. Tak teżconcat
.widget.notes.where(:author_id => a).first
przypuszczalnie za każdym razem zwraca nowy obiekt, który będzie miał swój własny niezależny ciąg.możesz również skorzystać z:
źródło
<<
powinno być również możliwe do utworzenia łańcucha, ponieważ zwraca łańcuch.Czy mogę zapytać, dlaczego to jest ważne?
Wiem, że nie jest to bezpośrednia odpowiedź na twoje pytanie, ale fakt, że próbujesz zachować identyfikator obiektu łańcucha, może wskazywać, że powinieneś ponownie przyjrzeć się temu, co próbujesz zrobić.
Może się na przykład okazać, że poleganie na identyfikatorze obiektu w łańcuchu prowadzi do błędów, które są dość trudne do wyśledzenia.
źródło
Jeszcze inny sposób:
źródło
Oto inny sposób:
źródło