Ruby rubocop:如何冻结使用 splat 生成的数组常量

2023-12-26

我正在分配一个像这样的数组常量:

NUMS = *(2..9)

鲁博科普 说

C:冻结分配给常量的可变对象。
数值 = *(2..9)
^^^^^


So I try

NUMS = *(2..9).freeze

鲁博科普 说

C:冻结分配给常量的可变对象。
NUMS = *(2..9).冻结
^^^^^^^^^^^^^


Tried

NUMS = (*(2..9)).freeze

鲁博科普 说

E:意外令牌 tRPAREN (使用 Ruby 2.0 解析器;使用 AllCops 下的 TargetRubyVersion 参数进行配置)
NUMS = (*(2..9)).冻结
^


Tried

NUMS = [1, 2, 3, 4, 5, 6, 7, 8, 9].freeze

鲁博科普 说

== happy_robot_dance(没有错误)

I say

我的手因输入 1、2、3、... 9 而疼痛

有没有办法使用 splat 来分配和冻结常量?


RuboCop 之前没有解释过此案例(请阅读错误。)

我添加了一个issue https://github.com/bbatsov/rubocop/issues/3366 and a 拉取请求 https://github.com/bbatsov/rubocop/pull/3367这会解决这个问题。

同时,您可以通过在这种情况下禁用警察来让警察保持沉默,使用:

# rubocop:disable Style/MutableConstant
NUMS = *(2..9)
# rubocop:enable Style/MutableConstant

或者你可以使用#to_a:

NUMS = (2..9).to_a.freeze
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby rubocop:如何冻结使用 splat 生成的数组常量 的相关文章

随机推荐