当文件具有编译指示时:
# frozen_string_literal: true
默认情况下,冻结在该文件中写为文字的所有字符串。当我希望我的字符串整体不变,因此我使用的是pragma,但是想要有几个可变字符串时,建议使用它们的方法是什么?
我能想到的只有:
String.new("foo")
答案 0 :(得分:8)
我错过了。建议的方法是使用+@
方法字符串文字。
(+"foo").frozen? # => false
(-"foo").frozen? # => true
"foo".frozen? # => true
答案 1 :(得分:4)
您可以dup
字面值使其变为可变:
"foo".dup.frozen? # => false