【发布时间】:2013-10-10 18:08:31
【问题描述】:
在开发 Ruby 2.1 之后,我读到了一个可能会添加的功能,因此允许开发人员指定文字字符串应该以“冻结”开头。
语法如下(注意结尾的f):
str = "imfrozen"f # str receives a frozen string
在other Ruby documentation/wiki 我读到这个功能提供了以下好处:
这允许 VM 每次都使用相同的 String 对象,并且 可能在许多文件中使用相同的冻结字符串。它也是 显然提供了冻结字符串的所有不变性保证。
我的问题是:
- 这样做有什么好处?
- 在现实世界中,这样的功能何时可以提供价值的示例是什么?
- 这与
symbol有何不同?
谢谢
【问题讨论】:
-
我目前的理解是这些新的冻结字符串就像符号一样,但是可以被垃圾回收。
标签: ruby immutability ruby-2.1