簡體   English   中英

Ruby:如何訪問匿名類中定義的常量?

[英]Ruby: How to access the constant defined in a anonymous class?

我可以訪問常量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類總是可以進行擴展和更改。

定義常量:

self::NAME = "foo"

這將明確地將其綁定到self

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM