Ho guardato questo video. Perché lo a = a
viene valutato su nil
se a
non è definito?Perché `a = a`` nil` in Ruby?
a = a # => nil
b = c = q = C# => nil
Ho guardato questo video. Perché lo a = a
viene valutato su nil
se a
non è definito?Perché `a = a`` nil` in Ruby?
a = a # => nil
b = c = q = C# => nil
Rubino interprete inizializza una variabile locale con nil
quando vede un incarico ad esso. Inizializza la variabile locale prima di eseguire l'espressione di assegnazione o anche quando l'assegnazione non è raggiungibile (come nell'esempio seguente). Ciò significa che il tuo codice inizializza a
con nil
e quindi l'espressione a = nil
verrà valutata al valore di destra.
a = 1 if false
a.nil? # => true
La prima espressione assegnazione non viene eseguita, ma a
è inizializzato con nil
.