Alcance variable y orden de análisis vs. operaciones: asignación en un "si"
Mi entendimiento es que elif
Las declaraciones al final de la línea se evalúan antes del código al principio de la línea:
'never shown' if (false)
Y la asignación es posible en unaif
declaración.
'shown' if (value = 'dave is king')
value #=> "dave is king"
Y, cuando se asigna una variable que no existe, se crea. No hay necesidad de que exista de antemano. ¿Es esto cierto?
Si todas estas suposiciones son ciertas, ¿por qué falla esto?
error_array << error if (error = import_value(value))
#=> undefined local variable or method `error' for
Se asigna un error antes de que la matriz empuja a la derecha? Quiero entender cuando las cosas son evaluadas.
Este sí funciona:
if (error = import_value(value))
error_array << error
end
Ahora estoy realmente confundido.