Je pensais que dans ce qui suit, foo doit être vraiRuby's "foo = true if! Defined? Foo || foo.nil?" ne fonctionne pas
$ irb
ruby-1.9.2-p0 > foo = true if !defined? foo || foo.nil?
=> nil
ruby-1.9.2-p0 > foo
=> nil
parce que foo était dans un premier temps pas défini, mais la partie foo = true
rendre temporairement a une valeur nulle, de sorte que le !defined
n'a pas pris il, mais le foo.nil?
devrait l'attraper, et le rendre vrai ... mais pourquoi est-il encore nul?
cela est lié à Ruby's "foo = true if !defined? foo" won't work as expected