说我有一个带有标志的函数:

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/

10-12 17:46
查看更多