我正在分配一个像这样的数组常量:
NUMS = *(2..9)
Run Code Online (Sandbox Code Playgroud)
Rubocop说
C:冻结分配给常量的可变对象. NUMS
=*(
2..9 )^^^^^
所以我试试
NUMS = *(2..9).freeze
Run Code Online (Sandbox Code Playgroud)
Rubocop说
C:冻结分配给常量的可变对象.
NUMS =*(2..9).freeze
^^^^^^^^^^^^
试着
NUMS = (*(2..9)).freeze
Run Code Online (Sandbox Code Playgroud)
Rubocop说
E:意外的令牌tRPAREN(使用Ruby 2.0解析器;在AllCops下使用TargetRubyVersion参数配置)NUMS
=(*(2..9)).冻结
^
试着
NUMS = [1, 2, 3, 4, 5, 6, 7, 8, 9].freeze
Run Code Online (Sandbox Code Playgroud)
Rubocop说
== happy_robot_dance(没有错误)
我说
键入1,2,3,... 9,我的手会受伤
有没有办法使用splat分配和冻结常量?
解决方案
NUMS = (2..9).to_a.freeze
NUMS = Array(2..9).freeze
Run Code Online (Sandbox Code Playgroud)