Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当文件具有编译指示时:
# frozen_string_literal: true
默认情况下,该文件中以文字形式写入的所有字符串都被冻结。当我希望我的字符串总体上是不可变的,因此正在使用编译指示,但想要有几个可变字符串时,推荐的编写方式是什么?
我能想到的只有:
String.new("foo")
我错过了。推荐的方法是使用+@方法字符串文字。
+@
(+"foo").frozen? # => false (-"foo").frozen? # => true "foo".frozen? # => true
您可以dup使用文字使其可变:
dup
"foo".dup.frozen? # => false