我看到了在 Ruby 中使用类变量的问题;然而,似乎 RuboCop 的关于如何解决这个问题的文档是不够的。
现在,我可以忽略它。鉴于我的项目,没关系。但是,我只想知道 Rubocop 试图告诉我做什么,因为它没有意义。
在with 中执行提供的代码给出:irb 0.9.6Ruby 2.5.1
class A
@test = 10
end
#=> 10
class A
def test
@@test # you can access class variable without offense
end
end
#=> :test
A.new.test
Traceback (most recent call last):
3: from /Users/Ricky/.rbenv/versions/2.5.1/bin/irb:11:in `<main>'
2: from (irb):12
1: from (irb):9:in `test'
NameError (uninitialized class variable @@test in A)
Did you mean? @test
Run Code Online (Sandbox Code Playgroud)
所以不行。我们显然不能在没有冒犯的情况下访问类变量。irb非常生气。但是,ruby 建议使用@test. 也许这只是一个错字?让我们试试看: …