【问题标题】:ruby uninitialized constant in child class子类中的ruby未初始化常量
【发布时间】:2013-04-01 13:01:46
【问题描述】:

我不断收到此错误: 未初始化的常量 A::MYCONST 我的代码看起来像

class A
  MYCONST = "myconst"
end

class B < A
 TEST = A::MYCONST
end

【问题讨论】:

  • 这段代码没有给我任何错误。 A::MYCONST 按预期定义。您使用哪个红宝石版本?你确定你的class A 是之前定义的吗?
  • 如果仍有错误,请给我们完整的代码和错误堆栈

标签: ruby constants


【解决方案1】:
p RUBY_VERSION
class A
  MYCONST = "myconst"
end

class B < A
 p TEST = A::MYCONST
 p defined? TEST
end

输出:

"2.0.0"
"myconst"
"constant"

【讨论】:

    【解决方案2】:

    解释器抱怨是因为它期望B::A::MYCONST

    在 B 类中,line2 中定义的 const 可以由 ::A::MYCONSTMYCONST 引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      相关资源
      最近更新 更多