在Ruby中,“and”和“&&”有什么区别吗?

23 浏览
0 Comments

在Ruby中,“and”和“&&”有什么区别吗?

在 Ruby 中,&&and 运算符有何不同?

admin 更改状态以发布 2023年5月21日
0
0 Comments

实际区别在于绑定强度,如果你没有做好准备,可能会导致奇怪的行为:

foo = :foo
bar = nil
a = foo and bar
# => nil
a
# => :foo
a = foo && bar
# => nil
a
# => nil
a = (foo and bar)
# => nil
a
# => nil
(a = foo) && bar
# => nil
a
# => :foo

对于||or同样有效。

0
0 Comments

and&&相同,但其优先级更低。它们均采用短路评估

警告:甚至and=的优先级还要低,因此通常应避免使用and。有关and应该在何时使用的示例,请参见Rails指南中的"避免双重渲染错误"。

0