9 Stimmen

Veränderbarkeit von Ruby-Strings

Dies kann ein bisschen ein nooby Frage sein, ich habe versucht, besser in Ruby vor kurzem zu bekommen, und begann das Lesen der fantastischen Die Ruby-Programmiersprache . Etwas, das erwähnt wurde, ist, dass String-Literale als veränderbar gelten, so dass es in einer Schleife besser ist, eine Variable als ein Literal zu verwenden, da bei jeder Iteration ein neuer String instanziiert wird.

Meine Frage ist: Warum? Zuerst dachte ich, es sei wegen der Interpolation, aber Symbole sind unveränderlich und unterstützen die Interpolation. Von einem statischen Hintergrund kommend, macht es für mich nicht wirklich viel Sinn.

EDIT:

Nach der Lektüre thenduks Antwort, ich glaube, ich habe sie. AFAIK, Sprachen wie Java oder C# haben keine destruktiven String-Methoden (sie verwenden upcase, aber nicht upcase!). Aufgrund von Dingen wie upcase! oder << kann das Literal nicht unveränderlich sein.

Ich bin mir da nicht 100 %ig sicher. Die andere Möglichkeit ist, dass es sich um ein Kompilierzeit-Praktikum handelt, was in einer Skriptsprache einfach nicht vorkommt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X