次のコード:
test_1 = "my test string"
test_2 = test_1
test_2[3] = "B"
puts test_1
puts test_2
test_1 = "my test string"
test_2 = test_1
test_2 = test_2 + ""
test_2[3] = "B"
puts test_1
puts test_2
次の結果が生成されます。
my Best string
my Best string
my test string
my Best string
最初のケースでは両方の文字列が変更されているのに (test_2 が参照によって割り当てられているかのように)、2 番目のケースでは test_2 のみが変更されている理由を説明できますか (値によるかのように)。