Интерпретатор Ruby инициализирует локальную переменную с nil
, когда видит присваивание ей.Он инициализирует локальную переменную до того, как выполнит выражение присваивания или даже когда присваивание недоступно (как в примере ниже).Это означает, что ваш код инициализирует a
с помощью nil
, а затем выражение a = nil
будет преобразовано в правое значение.
a = 1 if false
a.nil? # => true
Первое выражение присваивания не выполнено, но a
инициализируется с nil
.