为什么在Ruby中a = a“ nil`?
我看了这个video 。 为什么a = a
评估nil
如果a
没有被定义?
a = a # => nil b = c = q = c # => nil
Ruby解释器在看到一个赋值的时候用nil
初始化一个局部variables。 它在执行赋值expression式之前初始化本地variables,甚至在赋值不可达的时候(如下面的例子)。 这意味着你的代码初始化a
nil
,然后expression式a = nil
将计算到右边的值。
a = 1 if false a.nil? # => true
第一个赋值expression式不被执行,但是a
被初始化为nil
。