我一直在查看一些源代码,以便更好地了解我们使用的游戏的核心,并编写更可靠,更快速的插件。然后我发现了这段好奇的代码......
public void setMaxH(double amount) {
super.setMaxH(amount);
this.h = Math.min(this.h, this.h);
...
}
我无法理解代码中存在最后一行的任何原因,使用Math.min,将结果分配给两个参数中使用的相同变量min ...它是否做任何事情?
答案 0 :(得分:5)
public static double min(double a, double b)
:“返回两个double值中较小的一个。也就是说,结果是接近负无穷大的值。如果参数具有相同的值,结果是相同的值。如果任一值为NaN,则结果为NaN。与数值比较运算符不同,此方法认为负零严格小于正零。如果一个参数为正零,另一个为负零,结果是负零。“
然后,可能是代码重构中的错误。仔细检查该函数并尝试理解程序员的意图是否可以:
this.h = Math.min(this.h, amount);
将是唯一明智的事情。