这可能有些小问题,最近我一直试图在ruby上变得更好,并开始阅读精彩的The Ruby Programming Language。有人提到的是字符串文字被认为是可变的,所以在一个循环中,最好使用一个变量,然后是一个文字,因为一个新的字符串将在每次迭代中被实例化。Ruby字符串可变性
我的问题是为什么?起初我以为这是因为插值,但符号是不可变的,它们支持插值。从静态背景来看,它对我来说并没有多大意义。
编辑:
阅读thenduks的答案后,我想我可能有它。 AFAIK,Java或C#等语言没有破坏性的字符串方法(它们使用upcase,但不是upcase!)。因为事情像upcase!或< <,文字不能是不可变的。
不是100%确定的,另一种可能性是它发生的编译时实习,这是在脚本语言中不会发生的事情。
增加了一些更多的问题,并给了+1 :) – 2009-01-23 16:22:10