ExpertiDict

Ruby · Essencial · Inglês · Técnico

freeze

/fɹiz/método

Método que torna um objeto imutável: depois dele, qualquer alteração lança FrozenError. É raso: os objetos dentro de um array congelado continuam mutáveis.

Onde usar

Aparece em constantes e objetos de valor para evitar mutação acidental, e na regra de frozen string literal. Congelar cedo ajuda a achar bugs de estado compartilhado.

Em código

nomes = ["ana"].freeze
p nomes.frozen?  # => true
copia = nomes.dup
p copia.frozen?  # => false
copia << "bia"
p copia.size  # => 2
nomes << "x"  # => FrozenError

Exemplos

Freeze the constant so nobody changes it.

Congele a constante para ninguém alterá-la.

Freeze the array, but the strings inside stay mutable.

Congele o array, mas as strings dentro continuam mutáveis.

Cuidado

Não é profundo: congelar um array não congela as strings dentro dele. Para uma cópia mutável use dup, que descongela.

Sinônimos

congelar

Veja também

Todos os termos de Ruby