gpt4 book ai didi

c++ - 使用嵌套的 if 语句来构造代码

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

我试图以可读的方式构建我的代码。我读过一种方法如下:

if(Init1() == TRUE)
{
if(Init2() == TRUE)
{
if(Init3() == TRUE)
{
...
Free3();
}
Free2();
}
Free1();
}

我喜欢这种做事方式,因为它将每个 FreeX 都保留在其匹配的 InitX 循环中,但是如果嵌套超过三层,它很快就会变得不可读并消失远远超过 80 列。许多函数可以分解成多个函数,这样就不会发生这种情况,但是为了避免过多的嵌套而分解一个函数似乎很愚蠢。特别是,考虑一个对整个类进行初始化的函数,其中该初始化需要十次或更多次函数调用。那是十层或更多层的嵌套。

我敢肯定我想多了,但是上面有什么我遗漏的基本内容吗?可以以可读的方式进行深度嵌套吗?或者以某种方式重组,同时将每个 FreeX 保留在其自己的 InitX 循环中?

顺便说一句,我意识到上面的代码可以压缩为if(Init1() && Init2()...,但代码只是一个例子。还有其他代码在将阻止这种压缩的每个 InitX 调用之间。

最佳答案

由于您包含了 C++ 标记,您应该使用 RAII - 资源获取即初始化。有很多很好的在线资源解释了这个概念,这将使很多与资源管理有关的事情变得容易得多。

关于c++ - 使用嵌套的 if 语句来构造代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092930/

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