2013-01-16 10 views

risposta

7

Significa che non è possibile modificarlo. Si imposta tramite il metodo freeze.

s = "a" 

concat modifica l'istanza della stringa.

s.concat("b") 
# => "ab" 

Quando si congela la stringa:

s.freeze 

allora, non è possibile applicare concat più.

s.concat("c") 
# => RuntimeError: can't modify frozen String 

Tuttavia, è possibile applicare i metodi che non modificano il ricevitore:

s + "c" 
# => "abc" 
2

Impedisce ulteriori modifiche a obj. Un RuntimeError verrà sollevato se si tenta di modificare. Non c'è modo di scongelare un oggetto congelato. Vedi anche l'oggetto # congelato ?.

a = [ "a", "b", "c" ] 
a.freeze 
a << "z" 

produce:

prog.rb:3:in `<<': can't modify frozen array (RuntimeError) 
from prog.rb:3 

Doco

Problemi correlati