为什么在Ruby中a=a``nil`?
我看了这个。如果未定义为什么在Ruby中a=a``nil`?,ruby,variable-assignment,local-variables,Ruby,Variable Assignment,Local Variables,我看了这个。如果未定义a,为什么a=a计算为nil a = a # => nil b = c = q = c # => nil Ruby解释器在看到局部变量的赋值时,使用nil初始化该局部变量。它在执行赋值表达式之前或甚至在无法访问赋值时初始化局部变量(如下例所示)。这意味着您的代码使用nil初始化a,然后表达式a=nil将计算为右侧值 a = 1 if false a.nil? # => true 不执行第一个赋值表达式,但用nil初始化a 您可以在Ruby中找到这种行为
a
,为什么a=a
计算为nil
a = a # => nil
b = c = q = c # => nil
Ruby解释器在看到局部变量的赋值时,使用
nil
初始化该局部变量。它在执行赋值表达式之前或甚至在无法访问赋值时初始化局部变量(如下例所示)。这意味着您的代码使用nil
初始化a
,然后表达式a=nil
将计算为右侧值
a = 1 if false
a.nil? # => true
不执行第一个赋值表达式,但用nil
初始化a
您可以在Ruby中找到这种行为的文档