self.class.delete是否调用类方法?

时间:2009-06-10 03:03:01

标签: ruby

我在Ruby库中查看此代码。

我假设self.class.delete在当前对象上调用名为delete类方法 - 即self引用的对象,我是否正确。

def delete!
  self.class.delete(self.key)
end

3 个答案:

答案 0 :(得分:8)

它为self类调用类方法delete

class Example
  def self.delete
    puts "Class method. 'self' is a " + self.class.to_s
  end

  def delete!
    puts "Instance method. 'self' is a " + self.class.to_s
    self.class.delete
  end
end

Example.new.delete!

输出:

Instance method. 'self' is a Example
Class method. 'self' is a Class

答案 1 :(得分:1)

这是正确的,无视ruby的“类方法”实际上是类实例方法的事实。

答案 2 :(得分:0)

是的,这是一种课堂方法。至于它是否在当前对象上调用它,它取决于你如何使用术语。它使用参数delete调用当前对象类的方法self.key