gpt4 book ai didi

c++ - 带有 bool 逻辑的单个返回是否等同于保护子句?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:50 25 4
gpt4 key购买 nike

<分区>

我正在使用 C/C++ 开发一个 bool 函数,该函数验证多个条件(它们本身就是 bool 函数)并且仅在所有条件都为 true 时才返回 true .

前段时间我开始使用 Guard Clauses 而不是嵌套的 if,即使它需要有多个 return,如下所示:

bool foo(){
//some initialization

if( !condition_1() ){
return false;
}

if( !condition_2() ){
return false;
}

...

if( !condition_n() ){
return false;
}

return true;
}

但现在我在问自己,仅使用一个带有 bool 逻辑的 return 是否是一个好的选择,例如:

bool foo(){
//some initialization
return condition_1() && condition_2() && ... && condition_n() ;
}

我没有任何代码可以在 guard 之后运行,而且只有几个,所以 return 语句并不那么拥挤,代码也不难阅读。我的想法是避免嵌套的 if 并在我的函数中只使用一个退出点。

我测试了代码,它工作正常,即使 condition_1() 对 condition_2() 做了一些更改。所以我明白保护子句代码和这个版本是等价的,执行顺序是从左到右维护的。那是对的吗?是否有任何隐藏的差异使这两个版本不是 100% 等效?

谢谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com