나는 Ruby에서 object_id
메소드의 동작을 연구하여 새로운 객체가 언제 생성되는지를 알고있다. 나는 (1)이 (2)와 동일하고 (3)이 (4)와 동일하다는 것을 이해할 수있다. 그러나 나는 (5)가 (6)과 동일하지 않다는 것을 이해하지 못한다.어떻게 슬라이스하고 슬라이스합니까! 루비의 object_id에 영향을 줍니까?
(1) 개까지 (6) 내 소스 코드와 함께 아래에 설명되어 있습니다.
그래서 Ruby에서 object_id
이 (새롭게 할당 됨) 변경 될 때를 알고 싶습니다. 아무도 그것을 간결하게 설명하지 않습니까?
대단히 감사합니다.
소스 코드
a = "foo"
b = a
b.slice!(0)
p a.object_id # (1)
p b.object_id # (2)
b = b
p a.object_id # (3)
p b.object_id # (4)
b = b.slice(0)
p a.object_id # (5)
p b.object_id # (6)
결과
70302398954840
70302398954840
70302398954840
70302398954840
70302398954840
70302398954680