c++ - 如何在其他两个函数成功的返回状态下干净地执行一个函数?
问题描述
我有一个函数依赖于其他两个函数的成功返回状态。即,如果任一函数失败,则第三个函数需要更新自身内部的某些内容以反映这一点,但仍继续进行。有没有一种干净的方法来执行这第三个功能,而不是多余的?
就我而言,我有以下内容,在哪里func1
返回func2
成功或失败:
bool status;
bool status2;
status = func1();
status2 = func2();
if (status && status2){
func3(other_args,true)
else func3(other_args, false);
而且我觉得这根本做得不好。我func3
编写了大量信息,并依赖于知道所执行的任何操作是否失败。有没有更简洁的方法来实现这第三个函数调用?
我的第一个想法是:
if (func1 && func2){
func3(some_other_args, true)
else func3(some_other_args, false)
这是正确的心态,还是这里有更清洁的东西?
解决方案
只需将条件作为参数传递以避免分支。
status = func1();
status2 = func2();
func3(other_args, (status && status2))
推荐阅读
- maven - 从 GitHub Maven Package Repo 下载包会导致 400 错误
- java - Javadoc:{@code ...} 可以换行吗?
- windows - 批处理文件复制文件,如果文件存在重命名带有时间戳的文件
- javascript - 用户可以在 React DevTools 中编辑状态吗?
- docker - Hadoop“copyFromLocal:无法从空字符串创建路径”错误
- r - r curl::curl_fetch_memory(url,handle = h)中的 Blastula 错误:MAIL 失败:530
- google-sheets-api - 我可以让用户从静态网站的*他*的谷歌电子表格中写入/读取数据吗?
- python - 数据库中的数据未加载到 HTML 表 Django
- r - 通过在不同列上匹配条件来分配 ID
- ios - 创建带有部分的分组 UITableView