下面的代码在Ruby中是什么意思?
||=
它的语法有什么意义或原因吗?
下面的代码在Ruby中是什么意思?
||=
它的语法有什么意义或原因吗?
当前回答
这就像延迟实例化。 如果变量已经定义,它将获取该值,而不是重新创建该值。
其他回答
||=称为条件赋值运算符。
它基本上像=一样工作,但如果一个变量已经被赋值,它将什么都不做。
第一个例子:
x ||= 10
第二个例子:
x = 20
x ||= 10
在第一个例子中,x现在等于10。然而,在第二个例子中,x已经被定义为20。所以条件运算符没有作用。执行X ||= 10后,X仍然是20。
除非x X = y 结束
除非x有值(不是nil或false),否则将其设为y
等于
X ||= y
irb(main):001:0> a = 1
=> 1
irb(main):002:0> a ||= 2
=> 1
因为a已经被设为1了
irb(main):003:0> a = nil
=> nil
irb(main):004:0> a ||= 2
=> 2
因为a是nil
这就像延迟实例化。 如果变量已经定义,它将获取该值,而不是重新创建该值。
X ||= y表示
如果x有任何值,不要改变它的值,否则 将x设为y