Ruby:除非vs,否则

Nul*_*uli 49 ruby coding-style

我发现自己更喜欢if not而不是unless.是否有正确的方法来编写这种情况?人们普遍感受到了unless什么?

der*_*erp 39

我希望这可以帮到你:https:
//github.com/bbatsov/ruby-style-guide

我个人有什么写有选择同意unless somethingif !something为改性剂和简单的01时,有一种else偏爱if.


jef*_*unt 27

unless每次都使用,除非有else条款.

所以,我会用

unless blah_blah
  ...
end
Run Code Online (Sandbox Code Playgroud)

但如果有其他条件,我会使用if not(或if !)

if !blah_blah
 ...
else
 ...
end
Run Code Online (Sandbox Code Playgroud)

经过if !多年,多年和几年的使用,我花了一段时间才习惯unless.现在我更喜欢它,在每种情况下,大声朗读都听起来很自然.

我也是使用尾随的粉丝 unless

increment_by_one unless max_value_reached 我明显使用这些方法/变量名称作为可读性示例 - 在我看来,代码的结构基本上应遵循该模式.

从更广泛的意义上说,结构应该是: take_action unless exception_applies

  • 相反,`if!blah_blah a else b end`我会使用`if b else a end`(切换if-和else-part并跳过'not'). (5认同)

Sim*_*tti 10

if not condition很少使用.Ruby程序员(通常来自其他语言)倾向于使用它if !condition.

另一方面,除非在存在单一条件且听起来可读的情况下被广泛使用.

除非有关编码风格的进一步建议,否则还要看看Ruby的意义.