说我有一个带有标志的函数:
void foo (Param p1, Param p2, bool setVariable)
{
//if setVariable is true, set some bool var to true, else false
}
在以下一项中,有一个人比另一个更强烈的偏好吗?
if (setVariable)
_someClassVariable = true;
else
_someClassVariable = false;
要么
_someClassVariable = setVariable;
显然,第二种方法减少了打字,但第一种方法使我更具可读性。哪一个是首选?
最佳答案
我通常更喜欢第二种。对我而言,第一个警告是强烈的警告,就是编写该代码的人充其量也只能勉强胜任。
也就是说,我也倾向于建议不要将布尔值作为参数传递。 foo(true);
vs. foo(false);
的真正含义鲜为人知。通常最好使用枚举,以便得到foo(do_this);
vs. foo(do_that);
关于c++ - 是否有基于参数设置变量的约定?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10228309/