ich bin in diesem Augenblick durch ein Tutorial zu arbeiten, und ich würde gerne verstehen, warum die folgenden Ereignisse eintritt:Warum hängt `` `an eine Ruby-Zeichenkette, während` + = `nicht?
original_string = "Hello, "
hi = original_string
there = "World"
hi += there
assert_equal "Hello, ", original_string
original_string = "Hello, "
hi = original_string
there = "World"
hi << there
assert_equal "Hello, World", original_string
Warum +=
auf original_string
keine Wirkung haben, und <<
tun? Ich war mir absolut sicher, dass der zweite Fall auch gleich "Hello, "
sein würde, aber das ist nicht der Fall.
hi = original string
in dem ersten Beispiel wird der Wert von original_string
in hi
zu kopieren, aber hi = original string
im zweiten Beispiel hi
einzustellen erscheint als original string
auf die gleiche Zeichenfolge zu zeigen. Ich denke, es gibt eine Art implizite Entscheidung hinter den Kulissen, ob der Wert kopiert oder die Referenz kopiert werden soll ... oder so.