37
我看了这个video。为什么a = a
评估为nil
如果a
未定义?当它看到一个分配给它为什么Ruby中的a = a`` nil`?
a = a # => nil
b = c = q = C# => nil
我看了这个video。为什么a = a
评估为nil
如果a
未定义?当它看到一个分配给它为什么Ruby中的a = a`` nil`?
a = a # => nil
b = c = q = C# => nil
Ruby解释器初始化与nil
局部变量。它在执行赋值表达式之前初始化局部变量,或者甚至在赋值不可达时(如下例所示)。这意味着您的代码将使用nil
初始化a
,然后表达式a = nil
将评估为右侧值。
a = 1 if false
a.nil? # => true
第一赋值表达式不被执行,但a
与nil
初始化。