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