我在Ruby库中查看此代码。
我假设self.class.delete
在当前对象上调用名为delete
的类方法 - 即self
引用的对象,我是否正确。
def delete!
self.class.delete(self.key)
end
答案 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
。