is_a?, kind_of? și instance_of? în Ruby: Verificarea Tipurilor și Claselor în Ruby

Sintaxă
obj.is_a?(ClasaSauModul)
obj.kind_of?(ClasaSauModul)
obj.instance_of?(ClasaExacta)

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.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: is_a?, kind_of? și instance_of? în Ruby: Verificarea Tipurilor și Claselor

Ai o nelămurire despre utilizarea comenzii is_a?, kind_of? și instance_of? în Ruby: Verificarea Tipurilor și Claselor sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.