[英]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.