gpt4 book ai didi

java - 修改参数是否被认为是不好的做法

转载 作者:行者123 更新时间:2023-12-01 23:16:26 24 4
gpt4 key购买 nike

java中的二分查找代码使用以下代码:

public static int binarySearch(int[] a, int fromIndex, int toIndex,
int key) {
rangeCheck(a.length, fromIndex, toIndex);
return binarySearch0(a, fromIndex, toIndex, key);
}

// Like public version, but without range checks.
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
int key) {
int low = fromIndex;
int high = toIndex - 1;

while (low <= high) {
int mid = (low + high) >>> 1;
int midVal = a[mid];

if (midVal < key)
low = mid + 1;
else if (midVal > key)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}

为什么需要复制fromIndexlowtoIndexhigh ?保持参数值不被修改是否被认为是一个好的做法?

修改可能是:

binarySearch0(a, fromIndex, toIndex - 1, key);
}

// Like public version, but without range checks.
private static int binarySearch0(int[] a, int low, int high,


while (low <= high) {

基本上,我试图了解这样做是否是出于某种意图,具有某种优势,还是遵循了一些良好的做法。

最佳答案

保持参数不被修改是一个很好的做法,最好将它们声明为最终的。这也提高了方法的可读性。

关于java - 修改参数是否被认为是不好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com