Ruby解释器神奇地分配未引用的变量?

时间:2014-11-05 16:11:07

标签: ruby interpreter symbol-table

$ irb
irb(main):001:0> foo
NameError: undefined local variable or method `foo' for main:Object
  from (irb):1
  from /Users/justinwiley/.rbenv/versions/2.1.2/bin/irb:11:in `<main>'

到目前为止,'foo'尚未定义。

irb(main):002:0> if false
irb(main):003:1> foo = 1
irb(main):004:1> end
=> nil

foo仍然应该是未定义的,但是......

irb(main):005:0> foo
=> nil

现在它存在于符号表中?由于永远不应该达到if分支中的逻辑,我认为foo应该保持未定义,而不是突然变为零?

0 个答案:

没有答案