Лучше использовать NOT или <> при сравнении значений? - PullRequest
29 голосов
/ 15 декабря 2008

Лучше использовать NOT или <> при сравнении значений в VBScript?
это:


If NOT value1 = value2 Then

или это:


If value1 <> value2 Then

лучше

EDIT: Вот мой контраргумент.
При поиске логического отрицания логического значения вы должны использовать оператор NOT, так что это правильно:


 If NOT boolValue1 Then

и при сравнении в первом примере возвращается булево значение. либо значения равны True, либо не False. Поэтому было бы целесообразно использовать оператор NOT, потому что вы логически отрицаете логическое значение.

Для удобства чтения сравнение в скобках, вероятно, поможет.

Ответы [ 4 ]

42 голосов
/ 15 декабря 2008

Последний (<>), потому что смысл первого неясен, если у вас нет полного понимания порядка операций, поскольку он применяется к операторам Not и =: тонкость, которая легко пропустить.

1 голос
/ 01 февраля 2018

Поскольку «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 голос
/ 15 декабря 2008

Согласен, читаемость кода очень важна для других, но важнее для вас самих. Представьте себе, как трудно было бы понять первый пример по сравнению со вторым.

Если на чтение (понимание) кода уходит более нескольких секунд, возможно, есть лучший способ написать его. В этом случае второй путь.

0 голосов
/ 15 декабря 2008

Второй пример будет не только для удобства чтения, но и из-за того факта, что в первом примере If NOT value1 вернет логическое значение для сравнения со значением value2. IOW, вам нужно переписать этот пример как

If NOT (value1 = value2)

, что делает бессмысленным использование ключевого слова NOT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...