if (x() > 10)
{
if (y > 5)
action1(p1, p2, p3, p4);
else
action2(p1, p2);
}
else
{
if (z > 2)
action1(p1, p2, p3, p4);
else
action2(p1, p2);
}
我在我的真实项目中,action1和action2实际上是2-3行代码,被调用的那些函数总共需要6-8个参数,因此将它们作为单个函数编写似乎并不正确。
更新:我忘了提及这一点,现在我看到很多答案都行不通。 x()是昂贵的操作,并且具有副作用,因此不应调用两次。
最佳答案
bool condition_satisfied = (x() > 10 ? y > 5 : z > 2);
if (condition_satisfied)
action1(p1, p2, p3, p4);
else
action2(p1, p2);
或者,或者,是Roger Lipscombe的answered。
关于c++ - 您如何缩短此时间,以使action1和action2在代码中仅显示一次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/578304/