当字符串默认不可变时,如何描述可变字符串?
How can I describe mutable strings when strings are immutable by default?
当文件有 pragma:
# frozen_string_literal: true
默认情况下,该文件中所有作为文字写入的字符串都被冻结。当我希望我的字符串整体不可变时,因此我使用 pragma,但想要有几个可变字符串,推荐的编写方式是什么?
我能想到的就是:
String.new("foo")
您可以 dup
文字使其可变:
"foo".dup.frozen? # => false
我错过了。推荐的方法是使用 +@
方法字符串文字。
(+"foo").frozen? # => false
(-"foo").frozen? # => true
"foo".frozen? # => true
当文件有 pragma:
# frozen_string_literal: true
默认情况下,该文件中所有作为文字写入的字符串都被冻结。当我希望我的字符串整体不可变时,因此我使用 pragma,但想要有几个可变字符串,推荐的编写方式是什么?
我能想到的就是:
String.new("foo")
您可以 dup
文字使其可变:
"foo".dup.frozen? # => false
我错过了。推荐的方法是使用 +@
方法字符串文字。
(+"foo").frozen? # => false
(-"foo").frozen? # => true
"foo".frozen? # => true