Ich wurde schon ein paar Mal gebissen, weil ich vergessen habe, dass x = y
in Ruby dazu führt, dass x auf dasselbe Objekt wie y verweist; Ich bin zu sehr an Sprachen gewöhnt, in denen es in Ruby-Terminen bedeutet, x = y.dup
. Wenn ich das vergesse, ändere ich versehentlich y
, wenn ich denke, dass es auf der rechten Seite der Zuweisung sicher ist.
Ich kann sehen, dass es sinnvoll wäre, einfache x = y
Zuweisungen ohne speziellen Grund zu vermeiden, aber das Gleiche kann auch an anderen Stellen lauern, wie zum Beispiel
name = (person.last_name.blank? ? 'unknown' : person.last_name)
wo ein späteres name << title
tatsächlich person.last_name ändern würde und nicht nur name.
Wenn Ihnen das auch passiert ist, wie haben Sie gelernt, es zu vermeiden? Gibt es bestimmte rote Flaggen oder Muster, auf die Sie achten sollten? Sehen Sie mit Argwohn jede Zuweisung, die Sie machen? Verwenden Sie viel .dup
? Ich weiß nicht, ob Rubys Verwendung jemals für mich zur Gewohnheit wird, also wären alle nützlichen Tipps willkommen.