是否有更高效或更好的方法来重写此代码?优化对函数的条件调用
if (condition 1 = true)
{
// Call to function 1
}
if (condition 2 = true)
{
// Call to function 2
}
是否有更高效或更好的方法来重写此代码?优化对函数的条件调用
if (condition 1 = true)
{
// Call to function 1
}
if (condition 2 = true)
{
// Call to function 2
}
我认为简答题是NO。长答案取决于条件和功能。
一般来说,没有。
如果被调用的函数重新评估条件,那么可能是的,通过提升函数中重新评估条件的函数部分,因为条件已知是正确的。 (这被称为“部分评估”)。
如果condition1和condition2有关系,那么可能是。试想一下,条件1是由几个方面
c1a and c1b and .. c1n
和C2组成的
c2a and c2b and ... c2m
如果文C1 i的某个子集意味着C2J的某个子集,那么你就可以更有效地评估的条件:
if (c1isubset) {
if (c1irest)
{ // call to function 1
}
endif
if (c2jrest)
{ // call to function2)
}
}
当然,这可能是因为C2J的一个子集意味着文C1 i的一个子集,然后你身边交换测试的顺序。