Riassegnamento costanti

Ciao ragazzi, vi risulta che ruby debba sempre dare un warning quando si
riassegna una costante?

ero convinto di s, ma poi ho trovato questo e mi sono stupito del fatto
che venga modificato il primo array senza nessun tipo di warning

CALLBACK_PARAMS=%w{ payment_status payer_name thx_id amount memo
verify_sign payer_id qta custom payer_email p }
REDIRECT_PARAMS=CALLBACK_PARAMS.delete_if { |p| p.eql? “verify_sign” }

1.9.3-p286 :003 > CALLBACK_PARAMS - REDIRECT_PARAMS
=> []

Se ricordo bene, il warning c’e’ quando provi a sostituire l’oggetto che
fa
riferimento alla costante con un altro, non quando modifichi lo stato
dello
stesso identico oggetto.

Il giorno 14 novembre 2012 19:01, Sante R. [email protected] ha
scritto:

PS: Sono stato alquanto criptico, ecco l’esempio aggiornato:

CALLBACK_PARAMS=%w{ payment_status payer_name thx_id amount memo
verify_sign payer_id qta custom payer_email p }
id_costante = CALLBACK_PARAMS.object_id
REDIRECT_PARAMS=CALLBACK_PARAMS.delete_if { |p| p.eql? “verify_sign” }
1.9.3-p286 :003 > CALLBACK_PARAMS - REDIRECT_PARAMS

id_costante == CALLBACK_PARAMS.object_id

restituisce true, si e’ modificato lo stato interno dell’oggetto Array,
ma e’ sempre lo stesso…il warning c’e’ solo quando si prova a
riassegnare alla costante un oggetto diverso

Il giorno 14/nov/2012, alle ore 19:56, Rocco G.
[email protected] ha scritto:

restituisce true, si e’ modificato lo stato interno dell’oggetto Array,
ma e’ sempre lo stesso…il warning c’e’ solo quando si prova a
riassegnare alla costante un oggetto diverso

Sipegazione chiarissima :slight_smile:
Grazie!

2012/11/14 Sante R. [email protected]:

aggiunta: se non vuoi fare modificare l’oggetto puntato da una
costante, usa #freeze.
Meno possibilit di errori sempre meglio :slight_smile:


twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: circleme.com