0
我发现很难理解如何将以下变量设置为nil
,而它似乎并未分配到任何位置。为什么变量在“if false”中出现时声明?
我试过这个在ruby 2.1.2
和ruby 1.8.7
。两者都产生相同的结果。
这是怎么发生的?
irb(main):002:0> foo
NameError: undefined local variable or method `foo' for main:Object
irb(main):003:0> if false
irb(main):004:1> foo = 1
irb(main):005:1> end
irb(main):006:0> foo
=> nil
(该变量*不*“分配”的值,但它是作为局部变量引入的 - nil仅仅是默认值,因为变量必须计算为* a *值。) – user2864740 2014-09-11 09:13:08