9

我的问题是在整个 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;
}

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

4

1 回答 1

2

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

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

于 2013-04-02T13:42:53.897 回答