Почему 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