[ruby] 기존 문자열에 추가

기존 문자열에 추가하려면 이것이 내가하는 일입니다.

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")


답변

이것이 왜 중요한지 물어볼 수 있습니까?

이것이 귀하의 질문에 대한 직접적인 대답이 아니라는 것을 알고 있지만 문자열의 개체 ID를 유지하려는 사실은 수행하려는 작업을 다시 확인해야 함을 나타낼 수 있습니다.

예를 들어 문자열의 개체 ID에 의존하면 추적하기 매우 어려운 버그가 발생할 수 있습니다.


답변

또 다른 방법 :

s.insert(-1, ' world')


답변

다른 방법이 있습니다.

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


답변