在 Ruby 中,&& 和 and 运算符有何不同?
&&
and
实际区别在于绑定强度,如果你没有做好准备,可能会导致奇怪的行为:
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同样有效。
||
or
and与&&相同,但其优先级更低。它们均采用短路评估。
警告:甚至and比=的优先级还要低,因此通常应避免使用and。有关and应该在何时使用的示例,请参见Rails指南中的"避免双重渲染错误"。
=
用户名或电子邮箱地址
密码