首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rubocop:如何冻结用splat生成的数组常量

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

Stack Overflow用户
提问于 2016-08-04 01:49:46
回答 3查看 2.9K关注 0票数 5

我分配了一个数组常量,如下所示:

代码语言:javascript
复制
NUMS = *(2..9)

鲁波克说

C:冻结分配给常量的可变对象。

名词=*(2.9)

所以我试着

代码语言:javascript
复制
NUMS = *(2..9).freeze

鲁波克说

C:冻结分配给常量的可变对象。

NUMS =*(2.9).freeze

/T1497-1990(三)(三)

试过

代码语言:javascript
复制
NUMS = (*(2..9)).freeze

鲁波克说

E:意外令牌tRPAREN (使用Ruby2.0解析器;在AllCops下使用TargetRubyVersion参数进行配置)

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

商品、产品、商品、产品、商品、产品等。

试过

代码语言:javascript
复制
NUMS = [1, 2, 3, 4, 5, 6, 7, 8, 9].freeze

鲁波克说

== happy_robot_dance (无错误)

我说

我的手因输入1,2,3,.9而受伤

有什么方法可以使用splat来分配和冻结常量吗?

EN

回答 3

Stack Overflow用户

发布于 2016-08-04 10:08:51

这个案例以前被RuboCop (read )下落不明。

我添加了一个问题和一个拉请求来解决这个问题。

同时,您可以通过禁用用于这种情况的cop,使用以下方法使其保持沉默:

代码语言:javascript
复制
# rubocop:disable Style/MutableConstant
NUMS = *(2..9)
# rubocop:enable Style/MutableConstant

或者您可以使用#to_a

代码语言:javascript
复制
NUMS = (2..9).to_a.freeze
票数 6
EN

Stack Overflow用户

发布于 2016-08-04 02:08:24

你可以试试:

NUMS = Array[*2..9].freeze

票数 1
EN

Stack Overflow用户

发布于 2016-08-04 01:52:54

我认为这是为了安抚Rubocop本身-- case 2看起来应该有效,因此可以被认为是一个bug。但是,这起作用吗?

代码语言:javascript
复制
why_do_i_exist = *(2..9)
NUMS = why_do_i_exist.freeze
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38757237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档