Das mag ein bisschen eine Frage von Nooby sein, ich habe versucht, in Ruby vor kurzem besser zu werden, und fing an, das fantastische The Ruby Programming Language zu lesen. Etwas, das erwähnt wurde, ist, dass String-Literale als veränderlich betrachtet werden. Daher ist es in einer Schleife besser, eine Variable als ein Literal zu verwenden, da eine neue Zeichenfolge bei jeder Iteration instanziiert wird.Rubin String Veränderlichkeit
Meine Frage ist warum? Zuerst dachte ich, es sei wegen der Interpolation, aber Symbole sind unveränderlich und sie unterstützen die Interpolation. Aus einem statischen Hintergrund ergibt es nicht viel Sinn für mich.
EDIT:
Nach der Lektüre thenduks Antwort, ich glaube, ich kann es haben. AFAIK, Sprachen wie Java oder C# haben keine destruktiven String-Methoden (sie verwenden upcase, aber nicht upcase!). Wegen Sachen wie upcase! oder < <, das Literal kann nicht unveränderlich sein.
Nicht 100% sicher, die andere Möglichkeit ist, dass es ein Kompilierungs-Interning ist, das passiert, was in einer Skriptsprache nicht passiert.
hinzugefügt ein bisschen mehr zu der Frage, und gab eine +1 :) –