鲁比:除非vs如果不是



我发现自己更喜欢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的意义,除非获得关于除非编码风格的进一步建议。

最新更新