Ruby中7种定义类方法的方式

寻技术 Ruby编程 2023年07月11日 81
class SomeClass
 #method 1
 def SomeClass.ClassMethod1
 end
 
 def self.ClassMethod2
 end

 #method 2
 class << self
  def ClassMethod3
  end
 end
end

SomeClass.instance_eval do
 #method 3
 def ClassMethod4
 end

 #method 4
 define_method(:symbol, )
end

#method 5
SomeClass.class_eval do
 def self.ClassMethod5
 end
 
 #method 6
 class << self
  def ClassMethod6
  end
 end
end

#method 7 - dynamically define a class method at run time
def add_class_method(c, m, &b)
 eigenclass = class << c; self; end
 eigenclass.class_eval { 
  define_method(m, &b)
 }
end

 
Ruby真的是太灵活了,要驾驭Ruby的灵活真不容易。

关闭

用微信“扫一扫”