在Ruby中,我们应该总是使用"&&","||" 而不是"和","或"除非特殊情况?

nop*_*ole 5 ruby logical-operators

这是真的,在大多数情况下,在Ruby中,最好是使用&&,||而不是and,or除非是一些特殊的情况.

我认为Ruby的一个设计原则是尽可能减少意外,因此使用andor实际上有一些惊喜......例如and没有比优先级更高的优先级or,而&&优先级高于||.

所以我认为在大多数情况下,使用&&,||.在知道某些特殊情况下,可能需要使用and,or但我认为,如果这些与混合&&,||早晚可能会创建的错误时,你的同事谁在Ruby中开始就在不久前需要编辑的代码.

Rap*_*met 7

是.依赖于andor用于布尔逻辑是将微妙的错误引入应用程序的好方法.

但他们确实有一席之地.当用作控制流操作符时,它们是安全且可读的选项.

redirect_to root_url and return
Run Code Online (Sandbox Code Playgroud)

在我阅读这篇优秀的博客文章之前,我基本上都有这种感觉.


ste*_*lag 7

这本书的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

(由我改编的代码)最后一个不适用于'&&'.

就个人而言,为了便于阅读,我会使用'和'和'或'与括号结合使用,以便于阅读.-