Ruby rubocop:如何冻结用splat生成的数组常量
发布时间:2020-12-17 02:56:35 所属栏目:百科 来源:网络整理
导读:我正在分配一个像这样的数组常量: NUMS = *(2..9) Rubocop说 C:冻结分配给constants.NUMS = *(2..9)^^^^^的可变对象 所以我试试 NUMS = *(2..9).freeze Rubocop说 C:冻结分配给constants.NUMS = *(2..9)的可变对象.freeze ^^^^^^^^^^^^ 试着 NUMS = (*(2.
我正在分配一个像这样的数组常量:
NUMS = *(2..9) Rubocop说 C:冻结分配给constants.NUMS = *(2..9)^^^^^的可变对象 所以我试试 NUMS = *(2..9).freeze Rubocop说 C:冻结分配给constants.NUMS = *(2..9)的可变对象.freeze ^^^^^^^^^^^^ 试着 NUMS = (*(2..9)).freeze Rubocop说 E:意外的令牌tRPAREN 试着 NUMS = [1,2,3,4,5,6,7,8,9].freeze Rubocop说 == happy_robot_dance(没有错误) 我说 键入1,… 9,我的手会受伤 有没有办法使用splat分配和冻结常量? ———- 解决方案 NUMS = (2..9).to_a.freeze NUMS = Array(2..9).freeze 解决方法
这个案子以前是由RuboCop解释的(阅读bug.)
我添加了一个issue和一个pull request来解决这个问题. 与此同时,您可以通过以下方式禁用警察,使用以下方法使警察沉默 # rubocop:disable Style/MutableConstant NUMS = *(2..9) # rubocop:enable Style/MutableConstant 或者您可以使用#to_a: NUMS = (2..9).to_a.freeze (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |