Metoda freeze împiedică orice modificare ulterioară a stării interne a unui obiect. Orice încercare de a modifica variabilele de instanță sau conținutul unui tablou/dicționar înghețat aruncă o excepție FrozenError.
CONFIG = { host: "localhost", port: 5432 }.freeze
# Verificare stare de înghețare:
puts CONFIG.frozen? # true
# Încercarea de alterare aruncă excepție de runtime:
begin
CONFIG[:port] = 3306
rescue FrozenError => e
puts "Eroare capturată: #{e.message}"
# can't modify frozen Hash: {:host=>"localhost", :port=>5432}
end
Shallow vs Deep Freeze: freeze îngheață doar containerul la suprafață; elementele imbricate din interior rămân modificabile dacă nu sunt înghețate individual recursiv.
Întrebări & Exemple de Cod:
Object#freeze și frozen? în Ruby: Imutabilitate și Integritate de DateAi o nelămurire despre utilizarea comenzii
Object#freeze și frozen? în Ruby: Imutabilitate și Integritate de Datesau 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.