当字符串默认不可变时,如何描述可变字符串?

时间:2015-12-13 11:14:24

标签: ruby string literals ruby-2.3

当文件具有编译指示时:

# frozen_string_literal: true

默认情况下,冻结在该文件中写为文字的所有字符串。当我希望我的字符串整体不变,因此我使用的是pragma,但是想要有几个可变字符串时,建议使用它们的方法是什么?

我能想到的只有:

String.new("foo")

2 个答案:

答案 0 :(得分:8)

我错过了。建议的方法是使用+@方法字符串文字。

(+"foo").frozen? # => false
(-"foo").frozen? # => true
"foo".frozen? # => true

答案 1 :(得分:4)

您可以dup字面值使其变为可变:

"foo".dup.frozen? # => false
相关问题