proton 03.07.2012 10:55 desktop

Обнаружил интересное поведение в Ruby у метода defined?
Переменная объявляется, как defined даже если объявляется в блоке, который никогда не будет выполняться

Пример:
ruby-1.9.3-p0 :004 > puts 'ololo' if defined? a
=> nil
ruby-1.9.3-p0 :005 > a = 'c' if false
=> nil
ruby-1.9.3-p0 :006 > puts 'ololo' if defined? a
ololo
=> nil

Do you really want to delete ?