4
將下面的代碼添加到對象應該允許我檢索任何對象的單例類。訪問單例類
class Object
def singleton_class
class << self; self; end
end
end
我有一個強力球類,我實例化這種方式
puts Powerball.new.singleton_class
puts Powerball.new.singleton_class
puts Powerball.singleton_class
puts Powerball.singleton_class
它給了我這個輸出
#<Class:#<Powerball:0x007fd333040548>>
#<Class:#<Powerball:0x007fd333040408>>
#<Class:Powerball>
#<Class:Powerball>
因此,樂透類的兩個實例具有唯一的ID,而直接在類上調用singleton_class不會產生對象ID。
問題
是IDS獨一無二的,因爲每個實例有一個單獨的類?
據我所知,
self
內的一個類只是返回類,即類:強力球,但由於類是一個對象,不應該它也有一個ID?有沒有辦法訪問該ID?
的單例類的有趣的文章可以在Devalot博客上找到,從這個答案http://stackoverflow.com/questions/13850971/why-are-symbols-in-ruby-not-thought-of-評論作爲一種類型的可變/ 13871724#13871724 – BernardK