在测试过程中,在大块之后,我检查是否按下了 STOP 按钮。有这样一个部分,如果
if (m_stopTest)
{
manualStopTest(); // Выключаем все
//...
return; // Выходим из теста
}
是否有可能以某种方式正确格式化此部分,例如,将其转换为函数以更改嵌套在一个地方的内容?例如,像这样的想法
if (checkStop(m_stopTest)) return;
其中checkStop
包括所有这些检查和调用。但是,它checkStop
检查是不合逻辑的,其他东西会打开和关闭它。
你想要这样的东西吗?
为了解决您“管道”
return
到更高功能的问题,我看到至少三个选项:使用谓词函数并向其传递一个合适的参数:一个标志(正如 Harry 在他的回答中所展示的那样),甚至是一个要执行的附加函数,例如
manualStopTest
:用法:
在这种情况下,
return
它是沿着链传递的:return true;
在它内部从顶层函数checkStop
引出。return
使用宏替换:
例子:
在这种情况下
return
,只有一个,那么它比 C++ 更具 C 风格。如果语言有合适的替代品,最好避免使用宏。在这种情况下,inline
第 1 段中的函数的实现看起来会更好。在嵌套函数中抛出异常并在上面某处捕获它:
用法:
尽管如此,我仍然不会建议这样的选择,因为。不接受对分支逻辑使用异常。既是因为额外的开销,也是因为异常的意识形态,它们旨在解决真正的异常情况。