您是否编写方法来返回未使用的值?

时间:2014-01-06 19:44:21

标签: function language-agnostic coding-style return-value

这可能是一个风格问题。如果您正在编写代码并且不打算使用方法的返回值(例如,成功/失败时为true / false),您是否仍然编写该方法来返回值?即。如果有人可能会在未来的代码版本中使用返回值吗?

更一般地说,如果当前不使用这些方法的返回值,您是否将方法写入始终始终不返回值?

这是一个例子:我有一个从列表中删除项目的方法。如果列表为空,则不会删除任何内容,但当前调用代码不关心是删除0还是1项。未来的代码修订可能会关注。你会写这样的代码:

void removeItem() {
  if (!m_list.empty()) {
    m_list.pop();
    m_list.pop_back();
  }
}

或作为面向未来的方式:

bool removeItem() {
  if (!m_list.empty()) {
    m_list.pop();
    m_list.pop_back();
    return true;
  }
  return false;
}

在代码审核中,审核人员可能会说当前没有使用返回值,因此请将其删除。

1 个答案:

答案 0 :(得分:2)

考虑到YAGNI principle我不认为你应该返回在遥远的未来可能需要的任何东西,可能是暂时可选的。将来,无论如何你还需要别的东西。如果你今天计划一个布尔,那么明年你需要一个双打,所有为未来布尔做准备的工作都被浪费了。

实施规范。不多也不少。