ruby-on-rails - Splat (*) 运算符攻击与常量和 attr_reader 与 rubocop

标签 ruby-on-rails ruby rubocop linter

我在尝试使用类常量分配属性读取器时遇到不明确的 splat 运算符错误。

Class X1
  CONST = [:a, :b, :c]
  attr_reader *CONST
end

但是,我尝试了一些变通方法,但仍然会导致 rubocop 攻击/语法错误。以下是一些尝试过的方法:

Class X1
  CONST = [:a, :b, :c]
  attr_reader(*CONST)
end


Class X1
  CONST = [:a, :b, :c]
  attr_reader(*(CONST))
end

最佳答案

这工作正常,Rubocop 没有发现任何可提示的地方(除了缺少关于 X1 的文档):

class X1
  CONST = %i[a b c].freeze
  attr_reader(*CONST)
end

x = X1.new
p x.a
# nil
p x.b
# nil
p x.c
# nil

关于ruby-on-rails - Splat (*) 运算符攻击与常量和 attr_reader 与 rubocop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43518070/

相关文章:

sql - 如何计算一个表中的值,然后在另一个表中显示相同的值?

ruby-on-rails - 如何制作 MyClass.method( :var) and MyClass(:var) synonymous in Rails 4

ruby - 在 block 内增加 timeout.rb 定时器

ruby - rubocop 你如何修复丢失的魔法评论

ruby - VSCode/Rubocop 提示未配置的警察

ruby-on-rails - rspec spec 自动逻辑分组(按 "tags")

javascript - Foundation Reveal Modal 超出可见区域

ruby-on-rails - TinyTDS 是否支持 Ruby 2.0.0?

ruby - 平台系列与 rubocop 的阵列

ruby-on-rails - 不要在安全导航运算符之后链接普通方法调用