我正在分配一个像这样的数组常量:
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(使用前将#替换为@)