提问人:eplictical 提问时间:1/7/2014 最后编辑:eplictical 更新时间:1/7/2014 访问量:72
您是否编写了返回未使用值的方法?[关闭]
Do you write methods to return unused values? [closed]
问:
这(可能)是一个风格问题。如果你正在编写代码,并且你不打算使用方法的返回值(比如,成功/失败的 true/false),你仍然编写该方法来返回值吗?即。是否有可能在代码的未来版本中有人使用返回值?
更一般地说,如果当前不使用这些方法的返回值,您是将方法编写为 always 还是 always not 返回值?
下面是一个示例:我有一个从列表中删除项目的方法。如果列表为空,则不会删除任何内容,但当前调用代码不关心是删除了 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;
}
在代码审查中,审查者可能会说返回值当前未使用,因此请删除它。
答:
2赞
nvoigt
1/7/2014
#1
考虑到 YAGNI 原则,我认为您不应该返回任何在遥远的将来可能需要的东西,也许是暂时的可选。将来,无论如何,您都需要其他东西。如果你今天计划一个布尔值,明年你将需要双倍,而为未来的布尔值做准备的所有工作都白费了。
按照规范实施。不多也不少。
下一个:呼叫层次结构的最大深度
评论
main()
return 0;