2010-02-05 17 views
50

Gotruby ​​- non può modificare stringa congelato (TypeError)

... '[] =': non può modificare stringa congelato (TypeError)

quando si cerca di modificare ciò che Pensavo fosse una copia di ARGV [0].

stessi risultati per ciascuna delle

arg = ARGV[ 0 ] 
arg_cloned = ARGV[ 0 ].clone 
arg_to_s = ARGV[ 0 ].to_s 

arg[ 'x' ] = 'y' 
arg_cloned[ 'x' ] = 'y' 
arg_to_s[ 'x' ] = 'y' 

risposta

90

da quando Google ha impiegato troppo tempo per trovare la risposta giusta ...

necessario per fare

arg_dup = ARGV[ 0 ].dup 
+13

destra. Clone copia l'intero stato dell'oggetto, incluso lo stato congelato. Dup copia la carne dell'oggetto senza quelle altre bandiere. – Eli

+1

piuttosto sorpreso che .to_s fa lo stesso (anche congelato) !? – Straff

+2

64 secondi dalla pubblicazione della tua domanda, alla ricerca su Google e irritato nel postare la tua risposta è stato troppo lungo? :) – vgoff

Problemi correlati