Руби: «foo = true, если! Определено? Фу »не будет работать, как ожидалось
Когда он на самом деле не определен, он получает значениеnil
просто потому что это было "тронуто"
$ irb
ruby-1.9.2-p0 > foo = true if !defined? foo
=> nil
ruby-1.9.2-p0 > foo
=> nil
ruby-1.9.2-p0 > if !defined? bar
ruby-1.9.2-p0 ?> bar = true
ruby-1.9.2-p0 ?> end
=> true
ruby-1.9.2-p0 > bar
=> true
Итакif
...end
работает как положено, ноfoo = true if ...
не делает.