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
=> []
on 2012-11-14 19:01
on 2012-11-14 19:49
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:
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
on 2012-11-14 20:14
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!
on 2012-11-14 20:53
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
Log in with Google account | Log in with Yahoo account
No account? Register here.