假设我有一个布尔标志数组,它会根据条件设置为 true 或 false。
假设索引 1 ,2 ,6 已设置,所有其他标志均未设置,我需要调用functionA
,如果索引 2,3, 5 已设置并且所有其他标志未设置,我需要调用functionB
。除了这样做之外,还有一种简单的方法可以执行上述逻辑:
if(array[1] == true && array[2] == true && array[6] == true &&
array[3] == false && array[4] == false && array[5] == false)
{
functionA();
}
维护和可读性噩梦!
考虑一下这个:
bool temperature_sensor_tripped(const bool_array& flags)
{
return flags[1];
}
// [...]
if (temperature_sensor_tripped(array)
&& moisture_sensor_tripped(array)
&& !alarm_dispatched(array))
{
functionA();
}
这样做的好处是moisture_sensor_tripped()
并且它的亲属可以从其他函数调用,而无需您(或维护者)记住标志的顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)