Una herramienta útil para manipular salidas booleanas, ! (NO) operador en JMP También puede tener otras aplicaciones valiosas, como el uso con Contiene() en el mensaje <
Primero, aclaremos aquí que estamos discutiendo el uso de ! como un operador y no como la herramienta sintáctica utilizada en secuencias de escape entre comillas; en estos casos, no adquiere el significado NOT.
Tu puedes pensar en ! como cualquier otro operador en JMP. Probablemente esté familiarizado con los más comunes: Sumar (+), Restar (-), Multiplicar (*), Dividir (/), etc. En un sentido general, un operador es un símbolo de uno o dos caracteres que se utiliza para realizar acciones aritméticas comunes, comparar valores, construir listas, subíndices en un elemento de datos, enviar mensajes, concatenar listas, nombres de alcance, pegar expresiones y finalizar expresiones. .
El ! El carácter (a menudo denominado carácter "bang") en JMP se utiliza en el código JSL como operador para indicar un NOT lógico, lo que significa, en el contexto de valores booleanos (verdadero o falso), que asigna valores distintos de cero (o verdadero). ) valores a 0 (que significa falso) y asigna valores 0 (0 o falso) a 1 (que significa verdadero).
A continuación se muestran algunos ejemplos sencillos de su uso:
Ej. 1:
x = 1;
!x;
//LOG RESULT: 0
Ej. 2:
x = 0;
!x;
//LOG RESULT: 1
Ej. 3:
!(1 < 2);
//LOG RESULT: 0
Al agruparlo con otros operadores, puede considerarlo como perteneciente a otros operadores "lógicos" como OR (|) y AND (&), que normalmente se utilizan en declaraciones If().
Ej. 1:
x = 4;
//Check if x is NOT equal to 2 or 3
If( x != 2 & !(x == 3),
Show("Not Equal to 2 or 3"),
Show("Equal to 2 or 3")
);
//LOG RESULT: "Not Equal to 2 or 3"
Nota: Observe aquí que puede afirmar NO es igual a != o agregar ! antes de toda la expresión de igualdad, como !(x==3).
Ej. 2:
str = "hello world";
//Check if str does NOT contain the letter "o"
If (!Contains(str,"o"),
Show("Does not contain o"),
Show("Contains o")
);
//LOG RESULT: "Contains o"
¡Hay muchas situaciones en las que podría resultar útil utilizar ! donde no se limita a sus declaraciones If() como las anteriores. ¡Vimos un ejemplo de uso! con Contiene(), pero vayamos un poco más allá. Un uso clásico de Contiene() es en el contexto de un mensaje << Select Where(), como se demuestra en este ejemplo:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
<FONT color="#000000">dt << Select Where (!Contains(:name, "A"));
</FONT>
Esto es lo mismo que
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
dt << Select Where (Contains(:name, "A")==0);<BR />
La primera instrucción 'Seleccionar dónde' anterior coincide con el resultado que vería si pasara por el Filas ventana en la interfaz de usuario, navegó a Selección de fila --> Seleccionar dónde … y luego seleccionó la opción del menú desplegable en el cuadro de diálogo “no contiene”.

Como puede ver en el ejemplo anterior, el uso de ! puede hacer que el código sea más conciso y legible; También funciona mejor cuando desea combinar declaraciones en sus mensajes <
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" and "E", and contain letter "I"
dt << Select Where (!Contains(:name, "A") & !Contains(:name,"E") & Contains(:name, "I"));
El operador NOT tiene muchas aplicaciones útiles en JSL, así que pruébelo en su código. Por supuesto, no dude en comunicarse con el soporte técnico de JMP si tiene algún problema o tiene preguntas.