Oglądałem to video. Dlaczego a = a
jest oceniany jako nil
, jeśli a
nie jest zdefiniowany?Dlaczego `a = a`` nil` w Ruby?
a = a # => nil
b = c = q = C# => nil
Oglądałem to video. Dlaczego a = a
jest oceniany jako nil
, jeśli a
nie jest zdefiniowany?Dlaczego `a = a`` nil` w Ruby?
a = a # => nil
b = c = q = C# => nil
interpreter Ruby inicjalizuje lokalną zmienną nil
gdy widzi przypisanie do niego. Inicjuje lokalną zmienną, zanim wykona wyrażenie przypisania lub nawet gdy przypisanie nie jest osiągalne (jak w przykładzie poniżej). Oznacza to, że twój kod inicjuje numer a
za pomocą nil
, a następnie wyrażenie a = nil
ustali wartość prawą ręką.
a = 1 if false
a.nil? # => true
Pierwszy Przypisanie nie jest wykonywany, ale a
inicjowany jest nil
.