Защо a = a се оценява на нула?

Възможен дубликат:
Защо a = a е нула в Руби?

В хумористичния светкавичен разговор - Wat, изнесен от Гари Бернхард, следният код се оценява на нула:

a = a
#=> nil

Но всичко различно от самостоятелно присвояване води до NameError

b = c
#=> NameError: undefined local variable or method `c' for main:Object

Може ли някой да обясни защо a = a се оценява на nil?


person csherin    schedule 27.01.2012    source източник


Отговори (1)


Тъй като присвояването на a създава a за този обхват. присвояването на b не създава c.

person smparkes    schedule 27.01.2012