比较值时使用 NOT 还是 <> 更好?

问题描述 投票:0回答:5

在 VBScript 中比较值时,使用 NOT 更好还是使用 <> 更好?
是这样的:


If NOT value1 = value2 Then

或者这个:


If value1 <> value2 Then

更好?

编辑: 这是我的反驳。
当寻求对布尔值进行逻辑求反时,您将使用 NOT 运算符,因此这是正确的:


 If NOT boolValue1 Then

当与第一个示例的情况进行比较时,返回布尔值。这些值要么等于 True,要么不为 False。因此,使用 NOT 运算符是合适的,因为您在逻辑上对布尔值求反。

为了提高可读性,将比较放在括号中可能会有所帮助。

vbscript
5个回答
46
投票

后者 (

<>
),因为前者的含义并不明确,除非您完全理解适用于
Not
=
运算符的操作顺序:这是一个很容易理解的微妙之处小姐。


2
投票

因为“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

1
投票

同意,代码的可读性对其他人来说很重要,但更重要的是你自己。想象一下,与第二个示例相比,理解第一个示例有多么困难。

如果代码需要几秒钟的时间来阅读(理解),也许有更好的方法来编写它。在这种情况下,采用第二种方法。


0
投票

选择第二个示例,不仅仅是为了可读性,还因为在第一个示例中,If NOT value1 将返回一个布尔值以与 value2 进行比较。 IOW,您需要将该示例重写为

If NOT (value1 = value2)

这使得 NOT 关键字的使用变得毫无意义。


0
投票

就可读性而言,我不会使用“<>”,除非你在某处发表评论解释它是什么。

我试图遵循 HP 博物馆网站上的 NQueens 基准,但我不知道那是什么!

更糟糕的是,他们将其散布在不同的语言中,其中“<>”无效。搜索引擎并不真正工作符号,所以搜索它没有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.