Forum: Italian Ruby user group riassegnamento costanti

Posted by Sante Rotondi (Guest)
on 2012-11-14 19:01
(Received via mailing list)
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
 => []
Posted by Rocco Galluzzo (byterussian)
on 2012-11-14 19:49
(Received via mailing list)
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 Rotondi <saten.r@gmail.com> ha
scritto:
Posted by Rocco Galluzzo (byterussian)
on 2012-11-14 19:56
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
Posted by Sante Rotondi (Guest)
on 2012-11-14 20:14
(Received via mailing list)
Il giorno 14/nov/2012, alle ore 19:56, Rocco Galluzzo 
<mail@roccogalluzzo.com> 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 :)
Grazie!
Posted by gabriele renzi (Guest)
on 2012-11-14 20:53
(Received via mailing list)
2012/11/14 Sante Rotondi <saten.r@gmail.com>:


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

--
twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: circleme.com
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.