Vi esto video. ¿Por qué se evalúa a = a
en nil
si a
no está definido?¿Por qué `a = a`` nil` en Ruby?
a = a # => nil
b = c = q = C# => nil
Vi esto video. ¿Por qué se evalúa a = a
en nil
si a
no está definido?¿Por qué `a = a`` nil` en Ruby?
a = a # => nil
b = c = q = C# => nil
Rubí intérprete inicializa una variable local con nil
cuando ve una asignación a ella. Inicializa la variable local antes de que ejecute la expresión de asignación o incluso cuando la asignación no es alcanzable (como en el ejemplo a continuación). Esto significa que su código inicializa a
con nil
y luego la expresión a = nil
se evaluará al valor de la mano derecha.
a = 1 if false
a.nil? # => true
La primera expresión de asignación no se ejecuta, pero a
se inicializa con nil
.