`

关于单件类

    博客分类:
  • Ruby
阅读更多

主要资料来自于http://ola-bini.blogspot.com/2006/09/ruby-singleton-class.html

在ruby中我们可以通过五种方式添加class methods

ruby 代码
 
  1. class A   
  2.   def A.meth1   
  3.   end  
  4.      
  5.   def self.meth2   
  6.   end  
  7.     
  8.   class<<self  
  9.     def meth3   
  10.     end  
  11.   end  
  12.   
  13.   (class<<self;self;end).class_eval do  
  14.     def meth4   
  15.     end  
  16.   end
  17.  
  18.   def A::meth5
  19.   end

  20. end 

从结果来看,四种方式效果是一样的,但是,注意最后一种方式

ruby 代码
 
  1. class << self;self;end  
其实得到的是Class的singleton实例class,引用pr中的一段话“class << self. This defines a class based on the object self, and self happens to be the class object”
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics