maximum/minimum 方法是否比 If 语句更传统来设置值的 lower/higher 绑定?
Is maximum/minimum method more conventional than If statements to set a lower/higher bound for values?
比如我想把一个数组中的所有负整数都设置为0,哪个代码更常用或者更快?
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
if (arr[i] < 0){
arr[i] = 0;
}
}
或
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
arr[i] = Math.max(arr[i], 0);
}
我发现我更常使用第一个。
更快的方法取决于语言,但在我看来,我总是选择可读性而不是性能(在某些情况下,性能至关重要,因此在这种情况下,您会采用最性能化的方式)。
说起来,我更喜欢第一个例子:
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
if (arr[i] < 0){
arr[i] = 0;
}
}
与第二个示例相比,此代码更易于阅读和维护,但同样,这是我的意见。
但是,第一个示例可以用不同的方式完成,具体取决于您选择的语言,例如Javascript,您可以在一行中完成:
let array = [-1 -2, -3, 4, -5];
let arrayMaped = array.map(item => item >= 0 ? item : 0);
console.log(arrayMaped);
比如我想把一个数组中的所有负整数都设置为0,哪个代码更常用或者更快?
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
if (arr[i] < 0){
arr[i] = 0;
}
}
或
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
arr[i] = Math.max(arr[i], 0);
}
我发现我更常使用第一个。
更快的方法取决于语言,但在我看来,我总是选择可读性而不是性能(在某些情况下,性能至关重要,因此在这种情况下,您会采用最性能化的方式)。
说起来,我更喜欢第一个例子:
int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
if (arr[i] < 0){
arr[i] = 0;
}
}
与第二个示例相比,此代码更易于阅读和维护,但同样,这是我的意见。
但是,第一个示例可以用不同的方式完成,具体取决于您选择的语言,例如Javascript,您可以在一行中完成:
let array = [-1 -2, -3, 4, -5];
let arrayMaped = array.map(item => item >= 0 ? item : 0);
console.log(arrayMaped);