在函数开始时测试并返回,而不是嵌套的 if
Test and return at the start of a function vs nested if
以下两段代码具有完全相同的行为,并且每段代码都有自己的优点:单回波与嵌套深度。
选项B的中间可以放在一个函数中以删除嵌套。
选项 A.
void func(A * a, B * b)
{
if (a == NULL) { return; }
if (b == NULL) { return; }
// Do some stuff
}
或选项 B。
void func(A * a, B * b)
{
if (a != NULL)
{
if (b != NULL)
{
// Do some stuff
}
}
}
我想一致性可能是最重要的。我是否缺少什么,可以使一种选择比另一种选择具有实质性的好处?
谢谢
没有客观的技术杀手锏论据可以使一个选项优于另一个选项,因此它实际上归结为意见。您喜欢低压痕还是喜欢单回程?
在某些情况下,可能一个版本会禁止编译器的 RVO。但仅此而已。
在选项 A 中,如果两个中的任何一个在单个 if(...) 中为空,您可以只检查:
void func(A * a, B * b)
{
if (a == NULL || b == NULL) { return; }
// Do some stuff
}
相关文章:
- C++嵌套if语句,基本货币交换
- C++嵌套的 If 语句中,它无法按预期工作
- 嵌套 if 中没有返回评估
- 具有嵌套 if-else 的循环的时间复杂度
- 如何退出 for 循环内的嵌套 if-else 语句?(C/C++)
- 使用嵌套 if 语句的意外结果
- 在While循环中嵌套if语句
- C++ 嵌套'if'语句中的所有代码都会运行,即使这会更改外部语句的布尔值?
- 嵌套 if 与串行逻辑博克斯
- 简单嵌套"If else"语句
- 如何处理鼠标点击逻辑的许多嵌套if语句
- 嵌套if中的作用域不明确
- 嵌套if语句,同时也删除选项
- 嵌套IF语句vs IF- else
- C++:不应用于简单嵌套if-then-else语句的条件
- 嵌套 if 语句中的左值错误
- 嵌套if VS . 2独立if——性能方面
- 嵌套if -用c++进行嵌套if检查
- 嵌套'if'语句的一个'else'
- 使用GCC优化C/ c++循环中的嵌套if语句