Tôi muốn kiểm tra xem một lớp có kế thừa từ một lớp khác không, nhưng dường như không tồn tại một phương thức cho điều đó.
class A
end
class B < A
end
B.is_a? A
=> false
B.superclass == A
=> true
Một triển khai tầm thường của những gì tôi muốn sẽ là:
class Class
def is_subclass_of?(clazz)
return true if superclass == clazz
return false if self == Object
superclass.is_subclass_of?(clazz)
end
end
nhưng tôi hy vọng điều này đã tồn tại
những gì về
—
akostadinov
kind_of?
kind_of?
kiểm tra xem một đối tượng là một thể hiện của một lớp. Không phải là đối tượng kế thừa từ một lớp.
kind_of?
là bí danh củais_a?
A.class #=> Class
. Đây là lý do tại saoB.is_a? A
trả về sai.