Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Ruby中a=a``nil`?_Ruby_Variable Assignment_Local Variables - Fatal编程技术网

为什么在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中找到这种行为的文档