为什么Android API要求结果参数而不是返回方法?

Hon*_*nes 9 java optimization performance android

我的问题是在整个Android API中,很多库调用要求将results[]参数传递给方法,例如:

public boolean isInProximity(double startLat, double startLongitude, float meters) {
    float[] results = new float[3];
    Location.distanceBetween(startLat, startLongitude, endLatitude, endLongitude, results);
    return results[0] <= meters;
}
Run Code Online (Sandbox Code Playgroud)

对android的调用是Location.distanceBetween(),它需要results[]为什么他们不只是在方法中包含一个返回签名?我假设它是某种内存或速度优化.我不确定背后的确切原因.

Poz*_*pps 2

你是对的,这是关于优化的,这样你就可以多次调用这个方法,而不需要每次都分配内存。

编辑 - 这是一个测试:http://codeyarns.com/2010/10/21/c-return-value-versus-output-parameter/
我想迟到总比不到好。

  • 通过引用一两个参考文献可以显着改善这个答案。 (13认同)