Es mejor usar o NO usar <> cuando la comparación de los valores en VBScript?

es este:


If NOT value1 = value2 Then

o este:


If value1 <> value2 Then

mejor?

EDITAR:
Aquí está mi argumento en contra.

Cuando se busca lógicamente a negar un valor Booleano que usted podría utilizar el operador not, así que esta es la correcta:


 If NOT boolValue1 Then

y cuando se hace una comparación en el caso del primer ejemplo, un valor Booleano que se devuelve. los valores son True igual, o que no son Falsas. Así que, usando el operador NO sería adecuado, porque son, lógicamente, de la negación de un valor Booleano.

Para mejorar la legibilidad de la colocación de la comparación entre paréntesis probablemente ayudaría.

InformationsquelleAutor Tester101 | 2008-12-15

4 Comentarios

  1. 42

    El último (<>), porque el sentido de que el ex no está claro a menos que usted tenga un entendimiento perfecto de la orden de las operaciones según se aplica a la Not y = operadores: una sutileza que es fácil perderse.

    • No puedo decir cómo VBScript compila, pero también se ve como dos operaciones en lugar de una sola.
    • Aparte del hecho de que VBScript no compilar nada, es de hecho dos operaciones. Además, NO es (como el de otros operadores lógicos en VBScript) un operador bit a bit. ‘No 1’ => ‘-2’
  2. 1

    De acuerdo, la legibilidad del código es muy importante para los demás, pero lo más importante de ti mismo. Imagínese lo difícil que sería para comprender el primer ejemplo en comparación con el segundo.

    Si en el código se toma más de un par de segundos para leer (comprender), tal vez hay una mejor manera de escribir. En este caso, la segunda forma.

  3. 1

    Porque «no … =» es de dos operaciones y «<>» es uno solo, es más rápido utilizar «<>».

    Este es un experimento para demostrarlo:

    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

    Los resultados que obtengo en mi máquina:

    4.783203
    5.552734
  4. 0

    El segundo ejemplo sería el uno ir con, no sólo para mejorar la legibilidad, sino por el hecho de que en el primer ejemplo, Si NO valor1 devuelve un valor booleano que se compara con el valor2. IOW, usted necesita reescribir ese ejemplo como

    If NOT (value1 = value2)

    que sólo hace que el uso de la palabra clave NO carece de sentido.

Dejar respuesta

Please enter your comment!
Please enter your name here