在 VBScript 中比较值时,使用 NOT 更好还是使用 <> 更好?
是这样的:
If NOT value1 = value2 Then
或者这个:
If value1 <> value2 Then
更好?
编辑:
这是我的反驳。
当寻求对布尔值进行逻辑求反时,您将使用 NOT 运算符,因此这是正确的:
If NOT boolValue1 Then
当与第一个示例的情况进行比较时,返回布尔值。这些值要么等于 True,要么不为 False。因此,使用 NOT 运算符是合适的,因为您在逻辑上对布尔值求反。
为了提高可读性,将比较放在括号中可能会有所帮助。
后者 (
<>
),因为前者的含义并不明确,除非您完全理解适用于 Not
和 =
运算符的操作顺序:这是一个很容易理解的微妙之处小姐。
因为“not ... =”是两个操作,而“<>”只有一个操作,所以使用“<>”更快。
这里有一个快速实验来证明这一点:
StartTime = Timer
For x = 1 to 100000000
If 4 <> 3 Then
End if
Next
WScript.echo Timer-StartTime
StartTime = Timer
For x = 1 to 100000000
If Not (4 = 3) Then
End if
Next
WScript.echo Timer-StartTime
我在机器上得到的结果:
4.783203
5.552734
同意,代码的可读性对其他人来说很重要,但更重要的是你自己。想象一下,与第二个示例相比,理解第一个示例有多么困难。
如果代码需要几秒钟的时间来阅读(理解),也许有更好的方法来编写它。在这种情况下,采用第二种方法。
选择第二个示例,不仅仅是为了可读性,还因为在第一个示例中,If NOT value1 将返回一个布尔值以与 value2 进行比较。 IOW,您需要将该示例重写为
If NOT (value1 = value2)
这使得 NOT 关键字的使用变得毫无意义。
就可读性而言,我不会使用“<>”,除非你在某处发表评论解释它是什么。
我试图遵循 HP 博物馆网站上的 NQueens 基准,但我不知道那是什么!
更糟糕的是,他们将其散布在不同的语言中,其中“<>”无效。搜索引擎并不真正工作符号,所以搜索它没有帮助。