我想知道声明多个不需要的变量以使我的代码更具可读性是否合适.以下哪个片段的编码更好?它计算两个质量之间的力.
// 1 double dx = xPos - b.xPos; double dy = yPos - b.yPos; double r = Math.sqrt(dx*dx + dy*dy); double F = G * mass * b.mass / (r*r); // 2 double Fx = G * mass * b.mass / Math.pow( Math.sqrt(Math.pow(2,xPos-b.xPos) + Math.pow(2,yPos-b.yPos)), 2);
如何平衡可读性和性能?是否可以在一行中完成评论好吗?
(我意识到Math.pow(Math.sqrt(在第二个例子中可以删除,但这只是一个例子)
如何平衡可读性和性能?
您已经提供了一个很好的例子,说明为什么可读性比性能更重要.
Math.pow(2,xPos-b.xPos)
这是
2^(xPos-b.xPos)
并不是
(xPos-b.xPos)^2
正如我想象的那样.
也
Math.pow(Math.sqrt(x), 2)
只是
x
无论哪种方式,你的表达太复杂,你应该简化它.
double dx = xPos - b.xPos; double dy = yPos - b.yPos; double F = G * mass * b.mass / (dx*dx + dy*dy);
注:这两个Math.pow
和Math.sqrt
是昂贵的操作,以便通过使公式简单,它也就会快得多.