在将 javascript 库移植到 Python 时,我发现了以下代码:
return Math.atan2(
Math.sqrt(
(_ = cosφ1 * sinΔλ) * _ + (_ = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * _
),
sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ
);
我错了还是(_ = cosφ1 * sinΔλ) * _
可以写成Math.pow(cosφ1 * sinΔλ, 2)
?
我猜作者试图避免使用 Math.pow,与临时分配相比,这在 javascript 中是否昂贵?
[更新]
截至 2016 年底,Chrome 53.0(64 位)的差异似乎没有以前那么大了。