我发现自己更喜欢if not
而不是unless
。有没有合适的方法来写这种条件?人们对unless
的总体感觉如何?
我希望这能帮助您:https://github.com/rubocop-hq/ruby-style-guide#if-vs除非
对于负条件(或控制流||(,首选"除非"而非"如果"。
# bad do_something if !some_condition # bad do_something if not some_condition # good do_something unless some_condition
我个人同意那里写的内容,选择unless something
而不是if !something
作为修饰语和简单修饰语,当有else
时,更喜欢if
。
我每次都使用unless
,除非有else
子句。
所以,我将使用
unless blah_blah
...
end
但如果有其他条件,我会使用if not
(或if !
(
if !blah_blah
...
else
...
end
在使用if !
多年之后,我实际上花了一段时间才习惯unless
。如今,我更喜欢在任何情况下大声朗读听起来很自然。
我也喜欢使用尾随的unless
increment_by_one unless max_value_reached
我使用这些方法/变量名显然是一个可读性示例——在我看来,代码的结构基本上应该遵循这种模式。
在更广泛的意义上,结构应该是:take_action unless exception_applies
if not condition
很少使用。Ruby程序员(通常来自其他语言(倾向于使用if !condition
。
另一方面,除非在有单一条件的情况下广泛使用,并且听起来可读。
另请参阅理解Ruby的意义,除非获得关于除非编码风格的进一步建议。