ЗмістНатисність на посилання, щоб перейти до потрібного місця
is_a?, kind_of?, і instance_of? у Ruby перевіряють тип об’єкта, але з різною глибиною.
is_a? та kind_of?
Вони еквівалентні - обидва перевіряють, чи об’єкт є екземпляром певного класу або його нащадка.
class Animal; end class Dog < Animal; end dog = Dog.new dog.is_a?(Dog) # true dog.is_a?(Animal) # true - бо Dog < Animal dog.kind_of?(Animal) # true - те саме
instance_of?
Перевіряє точний клас, без спадковості.
dog.instance_of?(Dog) # true dog.instance_of?(Animal) # false — бо це нащадок, не сам клас
Якщо коротко:
is_a? та kind_of? - перевіряють по ланцюжку спадковості
instance_of? - перевіряє тільки конкретний клас
Цей допис поки що не має жодних доповнень від автора/ки.