gpt4 book ai didi

javascript - 我们应该如何命名否定条件的谓词?

转载 作者:行者123 更新时间:2023-11-29 23:40:53 24 4
gpt4 key购买 nike

我想知道在否定条件下命名谓词时哪个被认为是最佳实践。

我熟悉在谓词函数名称前加上 is 的约定,以表示它返回 truefalse值(value)。例如,isGreaterThanFifty(120) 清楚地表达了谓词函数的意图,即如果满足条件,它将返回 true。相反,当我们想要否定条件时,我们应该说 !isGreaterThanFifty(120),还是说 isNotGreaterThanFifty(120) 会更好?

我们是否应该创建一个谓词函数来表达:

  1. 正例(例如 isValid()),然后将它与 !(例如 !isValid())一起使用来否定它使用时
  2. 负面情况(例如 isInvalid()isNotValid()),因为这就是我们使用它的方式

例如,

if (!isValid(data)) {
return new Error();
}
// do something if it is valid

相比

if (isNotValid(data)) {
return new Error();
}
// do something if it is valid

我正在寻找更具可读性并清楚表达其意图的代码。

我知道像 Ruby 这样的一些语言允许我们使用 unless 而不是 if 条件甚至附加 ? 到末尾一个函数,但大多数语言都没有。所以我的问题是针对那些没有这种语法的语言,比如 JavaScript。

最佳答案

据我所知,没有关于此的约定。

它应该由您的实际需要驱动,例如,您是否要从多个地方进行此调用(它实际上会使代码受益)?你是否可能将一堆谓词放在一起,这可能会影响可读性,例如:(!isValid()) 看起来类似于 (isValid()) 这就是为什么有些更喜欢使用完整条件:(isValid() == false)

或者更好的是将 false 放在左侧,这有助于防止在尝试执行条件时意外重新分配值:

即:false == isValid vs isValid == false 后者可能被打错或意外被单个 = 替换将是坏消息。

将必要性作为你的驱动力,同时始终考虑你的 future (回到代码中),当然,也要始终考虑你的队友。

关于javascript - 我们应该如何命名否定条件的谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45285174/

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