访问一个类的常量variables

当我有

class Foo CONSTANT_NAME = ["a", "b", "c"] ... end 

有没有办法访问Foo::CONSTANT_NAME还是必须创build一个类方法来访问该值?

你发布的内容应该完美:

 class Foo CONSTANT_NAME = ["a", "b", "c"] end Foo::CONSTANT_NAME # => ["a", "b", "c"] 

如果要在包含常量的类中编写其他代码,则可以将其视为全局对象。

 class Foo MY_CONSTANT = "hello" def bar MY_CONSTANT end end Foo.new.bar #=> hello 

如果您正在访问类之外的常量,则将其前缀为类名,后跟两个冒号

 Foo::MY_CONSTANT #=> hello 

一些替代品:

 class Foo MY_CONSTANT = "hello" end Foo::MY_CONSTANT # => "hello" Foo.const_get :MY_CONSTANT # => "hello" x = Foo.new x.class::MY_CONSTANT # => "hello" x.class.const_defined? :MY_CONSTANT # => true x.class.const_get :MY_CONSTANT # => "hello" 

有没有办法访问Foo::CONSTANT_NAME

就在这里:

 Foo::CONSTANT_NAME