微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

默认情况下冻结数组和散列?

如何解决默认情况下冻结数组和散列?

只是想知道是否是这样的:

# frozen_string_literal: true

存在但对于数组和哈希?

目标不是.freeze一个全局文件中的每一个

解决方法

我没有找到任何可以修补默认 ruby​​ 类(如 ArrayHash)的库。但我发现了一个有趣的 gem immutable-ruby 可能适合您的需求

简单例子

require "immutable/hash"

person = Immutable::Hash[name: "Simon",gender: :male]
# => Immutable::Hash[:name => "Simon",:gender => :male]

并且你不能只是修改它的值,因为它是不可变的。您可以对该哈希执行一些操作,但新副本将返回给您

friend = person.put(:name,"James") # => Immutable::Hash[:name => "James",:gender => :male]
person                              # => Immutable::Hash[:name => "Simon",:gender => :male]
friend[:name]                       # => "James"
person[:name]                       # => "Simon"
,

找到了一种无需使用其他 gem 仅使用 vscode 和 rubocop 即可处理它的方法:

  1. 在 vscode 上安装 rubocop 扩展
  2. 打开您的.vscode/settings.json
  3. 附加这些规则:
{
  "editor.formatOnSave": true,"editor.formatOnSaveTimeout": 5000,"ruby.format": "rubocop"
}
  1. 保存
  2. 享受

感谢 Tom Lord 的提示。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。