Prova quanto segue in IRB: (sto usando Rubino 2.0.0-P247)Come viene creata una variabile locale anche quando la condizione IF è falsa in Ruby?
blah
#=> NameError: undefined local variable or method `blah' for main:Object
if false
blah = 'blah'
end
#=> nil
blah
#=> nil
Sono sorpreso che blah
viene assegnato nil
anche quando la condizione if
restituisce false
. Ho pensato che il codice all'interno di if
venga saltato poiché la condizione è pari a false
.
Qualcuno con conoscenza interna di Ruby può gentilmente spiegare come è successo?
Grazie
Interessante. Sarebbe bello vedere il YARV corrispondente a questo codice. – Pak
@Pak: qui vai http://pastebin.com/HvNy4u69 –