Por que é `a = a“ nil` em Ruby?

Eu assisti esse video Por que a = a avaliada como nil se a não está definida?

 a = a # => nil b = c = q = c # => nil 

O interpretador Ruby inicializa uma variável local com nil quando vê uma atribuição para ela. Inicializa a variável local antes de executar a expressão de atribuição ou mesmo quando a atribuição não está acessível (como no exemplo abaixo). Isso significa que seu código inicializa a com nil e, em seguida, a expressão a = nil será avaliada como o valor à direita.

 a = 1 if false a.nil? # => true 

A primeira expressão de atribuição não é executada, mas a é inicializada com nil .

    Intereting Posts