为什么a = a评估为零?

时间:2012-01-27 19:56:58

标签: ruby behavior undefined-behavior

  

可能重复:
  Why a = a is nil in Ruby?

在Gary Bernhardt提供的幽默lightning talk - Wat中,以下代码评估为nil:

a = a
#=> nil

但除了自我赋值之外的任何事都会导致NameError

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

有人可以解释为什么a = a评估为nil

1 个答案:

答案 0 :(得分:2)

因为a的分配会为该范围创建a。分配到b不会创建c