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

fra*_*anz 4 ruby

我在Ruby库中查看此代码.

我在假设正确self.class.delete调用类的方法称为delete当前对象-即通过引用的对象self.

def delete!
  self.class.delete(self.key)
end
Run Code Online (Sandbox Code Playgroud)

toh*_*lio 8

它调用deleteself类的类方法.

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!
Run Code Online (Sandbox Code Playgroud)

输出:

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