nop*_*ole 5 ruby logical-operators
这是真的,在大多数情况下,在Ruby中,最好是使用&&,||而不是and,or除非是一些特殊的情况.
我认为Ruby的一个设计原则是尽可能减少意外,因此使用and或or实际上有一些惊喜......例如and没有比优先级更高的优先级or,而&&优先级高于||.
所以我认为在大多数情况下,使用&&,||.在知道某些特殊情况下,可能需要使用and,or但我认为,如果这些与混合&&,||早晚可能会创建的错误时,你的同事谁在Ruby中开始就在不久前需要编辑的代码.
是.依赖于and和or用于布尔逻辑是将微妙的错误引入应用程序的好方法.
但他们确实有一席之地.当用作控制流操作符时,它们是安全且可读的选项.
redirect_to root_url and return
Run Code Online (Sandbox Code Playgroud)
在我阅读这篇优秀的博客文章之前,我基本上都有这种感觉.
这本书的Ruby编程语言"(大卫·弗拉纳根&松本行弘)给出了两个理由使用"和".
可读性:
if x > 0 and y > 0 and not defined? d then
d = Math.sqrt(x*x +y*y)
end
充分利用较低的优先顺序:
if a = get_from_db(x) and b = get_from_db(y) then do_stuff_with_true_values(a, b) end
(由我改编的代码)最后一个不适用于'&&'.
就个人而言,为了便于阅读,我会使用'和'和'或'与括号结合使用,以便于阅读.-