Nur weil’s gerade einen Kollegen mal wieder gebissen hat: ColdFusion and Pass by Reference versus Value

Kurzfassung: In CF (wie auch in Perl) werden defaultmäßig nur Primitive als Werte zugewiesen, alles andere nur als Referenz. Wenn man z.B. einen Loop baut und den Elementen eines Arrays eine Structure zuweist, kann das dazu führen, dass Werte in anderen Elementen überschrieben werden. Wenn man statt der Referenz also die Werte benötigt, ist duplicate() erforderlich.

Java dagegen nutzt immer pass by value, bei C++ und C# ist das ebenfalls der Default, wobei die mit dem ref-Keyword auch pass by reference unterstützen.

Diese subtile kleine Besonderheit ist immer wieder gut für schöne Brainfuck-Bugs 😉

Kommentar verfassen