如何初始化依赖于同一条件的多个常量



我需要初始化三个常量来计算一些东西。然而,这三个常量的值都依赖于相同的布尔属性,这就是为什么我目前将它们初始化为如下所示:

let startIndex = 0;
let endIndex   = this.count;
let increment  = 1;
if(this.revert) {
startIndex = this.count;
endIndex   = 0;
increment  = -1;
}

这里明显的缺点是,我现在处理的是变量,而不是常量。因此,我没有受到保护,不会意外地覆盖它们的值。

我可以如下初始化它们以防止这种缺点:

const startIndex = this.revert ? this.count : 0;
const endIndex   = this.revert ? 0 : this.count;
const increment  = this.revert ? -1 : 1;

现在,这些值是实际的常量,但对于每次初始化,都必须独立检查条件,这可能比第一种方法需要更多的处理时间。

当然,这个问题的答案可能是基于观点的,我知道我在这里很挑剔,但我感兴趣的是客观的答案,如果真的是这样的话,为什么一种方法比另一种更可取。

好的代码是由无数个小决定组成的,这就是这样一个决定,所以我觉得我的问题是合理的。

您可以定义变量并有条件地设置,最后分配给您的常量:

let startIndex = 0;
let endIndex   = this.count;
let increment  = 1;
if(this.revert) {
startIndex = this.count;
endIndex   = 0;
increment  = -1;
}
const StartIndex = startIndex;
const EndIndex = endIndex;
const Increment = incremen;

最新更新