Ruby: método inexplicavelmente substituído e definido como nulo
Se eu executar este código ruby:
def foo
100
end
p defined?(foo), foo
if false
foo = 200
end
p defined?(foo), foo
A saída que recebo é:
"method"
100
"local-variable"
nil
Pode alguém me explicar por quefoo
está configurado paranil
depois de não executar o if? Esse comportamento esperado ou é um bug do ruby?