object_id
新しいオブジェクトがいつ作成されるかを知るために、Rubyでメソッドの動作を研究しています。(1)は(2)と同じであり、(3)は(4)と同じであることがわかります。しかし、なぜ(5)が(6)と同じではないのかわかりません。
(1)(6)までは私のソースコードで以下に説明されています。
object_id
ですから、Rubyでいつ変更される(新しく割り当てられる)のかを理解したいと思います。誰かがそれを簡潔に説明しますか?
事前にどうもありがとうございました。
ソースコード
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