gpt4 book ai didi

ruby-on-rails - Ruby:如何访问匿名类中定义的常量?

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

我可以访问常量 AGE 作为 A::AGE。如何访问常量 NAME?(因为 A::NAME 会引发错误。)

class A
AGE=24
class << self
NAME="foo"
end
end

注意:我正在尝试访问 A 类之外的常量。

注意 2:我使用的是 Ruby 1.8.7

最佳答案

在Ruby 1.9.x 中,Ruby 提供了方法singleton_class。所以调用

irb(main):009:0> A.singleton_class::NAME
=> "foo"

做你想做的事。


在 Ruby 1.8.x 中,你可以自己实现 singleton_class 方法:

class Object
def singleton_class
class << self; self; end
end
end

然后你可以调用:

A.singleton_class::NAME
=> "foo"

这是可能的,因为 Ruby 类始终对扩展和更改开放。

关于ruby-on-rails - Ruby:如何访问匿名类中定义的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409754/

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