Aceste metode metaprogramate din modulul Module generează automat metodele accesor (getter și setter) pentru variabilele de instanță @variabila, reducând masiv codul repetitiv (boilerplate).
class Produs
attr_reader :id # Generează doar getter: def id; @id; end
attr_writer :stoc # Generează doar setter: def stoc=(val); @stoc = val; end
attr_accessor :pret, :titlu # Generează atât getter cât și setter
def initialize(id, titlu, pret, stoc)
@id = id
@titlu = titlu
@pret = pret
@stoc = stoc
end
end
p = Produs.new(1, "Laptop", 3500, 10)
puts p.titlu # Getter apelat
p.pret = 3200 # Setter apelat
# p.id = 2 # NoMethodError! (id este doar citibil)
Performanță C nativă: Metodele generate de attr_reader sunt optimizate la nivel de bytecode în mașina virtuală YARV, fiind mai rapide decât scrierea manuală a metodelor în Ruby.
Întrebări & Exemple de Cod:
attr_reader, attr_writer și attr_accessor în Ruby: Generarea Getter-elor și Setter-elorAi o nelămurire despre utilizarea comenzii
attr_reader, attr_writer și attr_accessor în Ruby: Generarea Getter-elor și Setter-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.