【发布时间】:2020-05-09 09:39:08
【问题描述】:
在很多情况下,你有这样的代码(使用 C 风格的伪代码):
bool checkCondition();
bool doSomething(){
if (checkCondition() == false)
return false;
// do something
return true;
}
我不断重复使用这种模式,每次都想知道是否有更好的方式来表达它?
有时,条件检查可以留给调用者或断言,但通常条件检查必须在函数内部完成。
您可以花哨并使用异常,但结果几乎是相同的代码。
【问题讨论】:
-
更好是什么意思?这是非常简单易读的代码(理想的 imo)。
-
某些语言有
guard语句用于此目的。guard这个词比if更能表达这种感觉,不是吗?例如,在 Swift 中你会使用guard checkCondition() else { return false }。但是Java中没有这样的东西。 (不了解 C++)。 -
if ( not condition()) return false;但你的解决方案也很好 -
@DominikWosiński 您的声明不允许在函数内添加额外代码。
-
您永远不必使用“== false”或“== true”或“!= false”或“!= true” - 布尔实例本身已经拥有此信息。跨度>
标签: java c++ imperative-programming