저는이 코드를 Ruby 라이브러리에서보고 있습니다. 즉 self
가 참조하는 객체 - self.class.delete가 클래스 메소드를 호출합니까?
self.class.delete
현재 객체에
delete
라고
클래스 메소드를 호출 가정에서 해결하고있다. def delete!
self.class.delete(self.key)
end
저는이 코드를 Ruby 라이브러리에서보고 있습니다. 즉 self
가 참조하는 객체 - self.class.delete가 클래스 메소드를 호출합니까?
self.class.delete
현재 객체에
delete
라고
클래스 메소드를 호출 가정에서 해결하고있다. def delete!
self.class.delete(self.key)
end
자기의 클래스에 대해 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
루비의 '클래스 메소드'가 실제로 클래스 인스턴스 메소드라는 사실을 무시하면 정확합니다.
예, 클래스 메소드입니다. 현재 객체에서이 객체를 호출하는지 여부는 사용하는 방법에 따라 다릅니다. 그것은 self.key
인수를 사용하여 현재 객체 클래스의 delete
메쏘드를 호출하고 있습니다.
그래서 self.class.delete는 Example.delete과 동일합니다. 감사. – franz