VBScriptで値を比較するときにNOTを使用するか、<>を使用する方が良いでしょうか?
これは:
If NOT value1 = value2 Then
またはこれ:
If value1 <> value2 Then
いい?
編集:ここに私の反論があります。
ブール値を論理的に否定する場合は、NOT演算子を使用するため、これは正しいです。
If NOT boolValue1 Then
最初の例の場合に比較が行われると、ブール値が返されます。値がTrueに等しいか、Falseではありません。したがって、ブール値を論理的に否定しているため、NOT演算子を使用することが適切です。
読みやすくするために、比較を括弧で囲んでおくとおそらく役立つでしょう。
後者(<>
)。前者の意味は、Not
および=
演算子に適用される操作の順序を完全に理解しない限り明確ではないためです。見落としやすい微妙さ。
「not ... = "は2つの操作であり、" <> "は1つだけであるため、" <> "を使用する方が高速です。
これを証明する簡単な実験を次に示します。
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
コードの可読性は他の人にとって非常に重要ですが、より重要なのは自分自身です。最初の例を2番目と比較して理解するのがどれほど難しいか想像してみてください。
コードの読み取り(理解)に数秒以上かかる場合は、おそらくより良い書き込み方法があります。この場合、2番目の方法。
2番目の例は、読みやすさだけでなく、最初の例ではIf NOT value1がvalue2と比較されるブール値を返すという事実のために、対応するものです。 IOW、その例を次のように書き換える必要があります
If NOT (value1 = value2)
nOTキーワードを使用しても意味がありません。