有没有更好的优雅方法来实现朴素的以下代码(diffYear,A和B是数字):
diffYear = yearA - yearB;
if (diffYear == 0) {
A = B = 0;
}
else if (diffYear > 0) {
A = diffYear * -1;
B = 0;
}
else if (diffYear < 0) { // obviously one could only write a simple else, this is for the sake of the example
A = 0;
B = diffYear;
}
最佳答案
这个实现很好。
经验法则是:是否清楚正在做什么?如果是,则将其保留。
其他实现也是可能的,但是您必须考虑谁将阅读此代码。例如,在一个团队/组织中,大多数开发人员每天都在使用数学,因此,我会编写如下内容使他们看起来更“自然”:
auto neg(int x) { return x < 0 ? x : 0; }
//...
int const A = neg(yearB - yearA);
int const B = neg(yearA - yearB);