我已经读过Ruby中的条件初始化和
obj1 ||= Class1.new
与...相同
obj1 ||obj1 = Class1.new
由于Ruby都是对象,因此我想知道为什么以下语句会引发“ NameError:未定义的方法或名称...”:
x || x = 10
但
x ||= 10
是正确的陈述
在第一种形式中,x
首先被独立引用。与第二种形式不同,x
需要先进行定义,否则将引发错误。
> x = nil
=> nil
> x || x = 10
=> 10
该表单同时x ||= 10
将声明和测试结合在一起,因此无论是否x
早先声明它都不会产生错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句