方法中的布尔参数.为什么不?

Jac*_*han 7 ruby-on-rails reek

我正在使用reek我的代码中的最佳实践分析工具.但是最近我发现如果在方法中,我有布尔参数,比如.

def method (flag = true)
Run Code Online (Sandbox Code Playgroud)

reek给我一个警告.为什么reek告诉我这是一个警告?

kev*_*ord 6

在我写 reek 的几年前,我在博客中讨论了这种代码味道:

http://silkandspinach.net/2004/07/15/avoid-boolean-parameters/

布尔参数的问题都与重复和 SRP 有关:被调用的方法有两个职责,并且调用者知道它想要调用哪一个。

  • 我认为这太夸张了。在很多情况下,带有布尔参数的方法都符合 SRP。如“def import(ignore_errors)”等。 (2认同)