gpt4 book ai didi

ruby - 如何在 ruby​​ 2.3 && ruby​​ 3 中声明可变字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:19 24 4
gpt4 key购买 nike

我只是通过新的 frozen_string_literal 选项进入 ruby​​ 2.3。

在我的每个文件中添加这一行:

#frozen_string_literal: true

a = String('test')
a.frozen? # true
a.gsub!('t', 'a') # raise error : OK

它运行良好,但是,有没有办法声明这样的东西:

a = MutableString('test')
a.frozen? # false
a.gsub!('t', 'a') # aesa

目前我是这样工作的:

a = 'test'.dup
a.frozen? # false
a.gsub!('t', 'a') # aesa

但是有点丑。

最佳答案

在未来的 Ruby 版本中实现这一点的优雅方式是 still being discussed .当然,在那之前,最好的办法是避免它,或者确实明确地使用 String#dup

然而,从技术上讲,没有什么可以阻止您做这样的事情:

def MutableString(x)
x.dup
end

MutableString('...')

关于ruby - 如何在 ruby​​ 2.3 && ruby​​ 3 中声明可变字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35040503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com