我发现自己更喜欢if not
而不是unless
。是否有正确的方法来编写这种情况?人们通常如何看待unless
?
答案 0 :(得分:37)
我希望这可以帮助你:
https://github.com/bbatsov/ruby-style-guide
我个人同意那里写的内容选择unless something
超过if !something
修饰符和简单修饰符以及else
更喜欢if
。
答案 1 :(得分:26)
我每次都使用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
答案 2 :(得分:10)
if not condition
很少使用。 Ruby程序员(通常来自其他语言)倾向于使用if !condition
。
另一方面,除非在单一条件和听起来可读的情况下被广泛使用。
另请参阅making sense with Ruby unless以获取有关除非编码样式的进一步建议。