可能重复:
为什么 a = a 在 Ruby 中为零?
容我们说,在使用未定义变量的 Ruby 中有一个“奇怪的现象” 。就像这样:
# irb session follows
#
foo # undefined local variable or method 'foo'
bar # same for 'bar'
foo = bar # still same for 'bar'
foo = foo # nil - HUH?
foo # is now set to nil!?
为什么我可以在 Ruby 中为自身分配一个未定义的变量并获取nil
?
请注意,我在这里使用的是 Ruby 1.9.3。我不确定这在哪些其他版本中可能是正确的。
(感谢 Gary Bernhardt 在他搞笑的演讲中证明了这一点。)