有啥理由这不是冗余代码吗?
Posted
技术标签:
【中文标题】有啥理由这不是冗余代码吗?【英文标题】:Is there any reason this isn't redundant code?有什么理由这不是冗余代码吗? 【发布时间】:2010-06-15 19:36:51 【问题描述】:我在一些现有的代码库中遇到了这段代码:
double rad = ComputeCurviness();
double off = Math.Abs(rad);
if (rad < 0) off = -off;
似乎基本上只是让off
等于rad
。这些变量稍后在代码中可互换使用。有什么理由留下这段代码吗?
【问题讨论】:
不,但是double off
和double rad
很棒。
...突然间,我的头好痛。
off
可能存在,以防rad
不计算!
在声称它是 100% 之前,我的倾向是检查异常值(NaN、+/-Infinity、MaxValue、MinValue)。我找不到任何损坏的案例,但我没有仔细检查。
【参考方案1】:
如果rad
为-0.0,off
将为+0.0。您必须检查代码以查看这是否真的会有所作为。两者在计算和比较上是等价的,但是-0.0是负数,如果你足够努力就可以检测到。
【讨论】:
谁是如此令人沮丧以至于连 零 都必须被表达为否定的? +1 Ack,我在考虑异常值时忘记检查 +/- 0。不错的收获。我发布了示例代码来区分 +/- 0 以响应另一个问题:***.com/questions/1043816/…以上是关于有啥理由这不是冗余代码吗?的主要内容,如果未能解决你的问题,请参考以下文章
hadoop中存储文件系统hdfs的冗余机制是怎么进行的?有啥特点?