gpt4 book ai didi

c++ - 嵌套 If (x) 检查 - 更好的写法?

转载 作者:可可西里 更新时间:2023-11-01 18:00:27 30 4
gpt4 key购买 nike

在对它们执行操作之前,我会在某些地方检查有效指针;这些检查有时可以嵌套得很深。

比如我有

if (a)
{
if (a->b())
{
if (a->b()->c())
{
a->b()->c()->DoSomething();
}
}
}

我真的不喜欢这个样子。有没有办法把它变成更具可读性的东西?理想情况下,

if (a && a->b() && a->b()->c() )
{
...
}

会很棒,但显然行不通。

编辑 - nvm 我提出的示例确实有效,正如每个人所指出的那样。我确实测试过它是否有效,但我的测试代码中存在一个错误。呃!

最佳答案

为什么后者不起作用?

在C语言中,&&是一个短路运算符,所以它是从左到右求值的,如果有一个求值是假的,求值就停止。

事实上,你可以这样写:

a && a->b() && a->b()->c() && a->b()->c()->DoSomething();

关于c++ - 嵌套 If (x) 检查 - 更好的写法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875908/

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