Metoda respond_to? verifică dacă un obiect poate răspunde la apelul unei metode specificate prin simbol sau string, stând la baza principiului „Dacă merge ca o rață și măcăne ca o rață, este o rață”.
def afiseaza_document(sursa)
if sursa.respond_to?(:read)
# Sursa poate fi un File, StringIO sau socket de rețea!
puts sursa.read
elsif sursa.respond_to?(:to_s)
puts sursa.to_s
else
raise ArgumentError, "Sursa nu poate fi citită"
end
end
afiseaza_document("Un simplu text")
afiseaza_document(StringIO.new("Flux în memorie"))
Metode private: În mod implicit, respond_to? caută doar metode publice; transmite al doilea argument true pentru a include și metodele private și protected.
Întrebări & Exemple de Cod:
Object#respond_to? în Ruby: Duck Typing și Verificarea InterfețelorAi o nelămurire despre utilizarea comenzii
Object#respond_to? în Ruby: Duck Typing și Verificarea Interfețelorsau 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.