微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby:访问类的常量,例如类

我有一个类似于以下的类:

class Foo
  MY_CONST = "hello"
  ANOTHER_CONST = "world"

  def self.get_my_const
    Object.const_get("ANOTHER_CONST")
  end
end

class Bar < Foo
  def do_something
    avar = Foo.get_my_const # errors here
  end
end

获取const_get未初始化的常量ANOTHER_CONST(NameError)

假设我只是在Ruby范围内做一些愚蠢的事情.我正在我正在测试此代码的机器上使用Ruby 1.9.3p0.

解决方法

工作中:

class Foo
  MY_CONST = "hello"
  ANOTHER_CONST = "world"

  def self.get_my_const
    const_get("ANOTHER_CONST")
  end
end

class Bar < Foo
  def do_something
    avar = Foo.get_my_const
  end
end

Bar.new.do_something # => "world"

你的下面部分不正确:

def self.get_my_const
    Object.const_get("ANOTHER_CONST")
end

在get_my_const方法中,self是Foo.所以删除对象,它会工作..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐