gpt4 book ai didi

Ruby:访问类实例的类常量

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:11 25 4
gpt4 key购买 nike

我有一个如下所示的类:

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。所以删除 Object,它会起作用..

关于Ruby:访问类实例的类常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18521725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com