一个神奇的数字矫枉过正



我有一段代码,其中我调用了一个带有字符串值参数的函数。字符串值使用索引从字符串数组中获取。

if (validateRejectionCategory(rejectionData[0])) {
    ......
}

在这种情况下,0 仍然被认为是一个幻数吗?我应该将 0 抽象为像 REJECTION_CATEOGRY_POSITION 这样的变量吗?函数名称是否不够清楚,该值将是拒绝类别?

请让我知道你的想法。

一般来说,将每个数值提取到常量是一个坏习惯。你必须像生活中的所有事情一样保持平衡。在这里很明显,您要验证rejectionData的第一个元素。012的大多数用途都不是魔法,而是在算法中使用。

你通常需要提取在代码上下文中不容易解释的数值。

例如,如果您的代码在某个类似主文件中看起来像这样:

app.modalTimeooutSeconds = 3.0
将其

重写为

let timeoutSeconds = 3.0
app.modalTimeoutSeconds = timeoutSeconds

除非您希望存储常量的配置文件,否则您可能没有足够的常量来支持具有这样的文件。

一切都取决于上下文,没有好的答案。

相关内容

  • 没有找到相关文章

最新更新