Metodele is_a? și kind_of? verifică dacă un obiect moștenește sau include o clasă sau un modul specific. Spre deosebire de acestea, instance_of? este strictă și returnează true doar dacă obiectul aparține exact acelei clase.
tablou = [1, 2, 3]
# is_a? verifică întreaga ierarhie de moștenire și module incluse:
puts tablou.is_a?(Array) # true
puts tablou.is_a?(Enumerable) # true (Array include modulul Enumerable)
puts tablou.is_a?(Object) # true (Array moștenește Object)
# instance_of? verifică DOAR clasa directă de instanțiere:
puts tablou.instance_of?(Array) # true
puts tablou.instance_of?(Enumerable) # false!
puts tablou.instance_of?(Object) # false!
Recomandare idiomatică: În codul Ruby modern se preferă verificarea comportamentului prin Duck Typing (respond_to?) în locul verificării rigide a tipurilor.
Întrebări & Exemple de Cod:
is_a?, kind_of? și instance_of? în Ruby: Verificarea Tipurilor și ClaselorAi o nelămurire despre utilizarea comenzii
is_a?, kind_of? și instance_of? în Ruby: Verificarea Tipurilor și Claselorsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.