Uno strumento utile per manipolare gli output booleani, il ! (NON) operatore in JMP può anche avere altre applicazioni utili, come l'uso con Contains() nel messaggio <
Innanzitutto, chiariamo qui che stiamo discutendo dell'uso di ! come un operatore e non come lo strumento sintattico utilizzato in sequenze di fuga tra virgolette; in questi casi non assume il significato di NOT.
Puoi pensarci! come tutti gli altri operatore in JMP. Probabilmente hai familiarità con i più comuni: Aggiungi (+), Sottrai (-), Moltiplica (*), Dividi (/), ecc. In senso generale, un operatore è un simbolo di uno o due caratteri utilizzato per eseguire azioni aritmetiche comuni, confrontare valori, costruire elenchi, pedice in un elemento dati, inviare messaggi, concatenare elenchi, nomi di ambito, incollare espressioni ed espressioni finali .
Il ! il carattere (spesso indicato come il carattere "bang") in JMP viene utilizzato nel codice JSL come operatore per indicare un NOT logico, il che significa, nel contesto dei valori booleani (vero o falso), che mappa un valore diverso da zero (o vero ) valori su 0 (che significa falso) e mappa i valori 0 (0 o false) su 1 (che significa vero).
Ecco alcuni semplici esempi del suo utilizzo:
Es 1:
x = 1;
!x;
//LOG RESULT: 0
Es 2:
x = 0;
!x;
//LOG RESULT: 1
Es 3:
!(1 < 2);
//LOG RESULT: 0
Quando lo si raggruppa con altri operatori, si può pensare che appartenga ad altri operatori “logici” come OR (|) e AND (&), che sono tipicamente usati nelle istruzioni If().
Es 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: Nota qui che puoi affermare NOT Equal con != o aggiungendo ! prima dell'intera espressione di uguaglianza, ad esempio !(x==3).
Es 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"
Ci sono molte situazioni in cui potrebbe essere utile usare! dove non è limitato alle tue istruzioni If() come sopra. Abbiamo visto un esempio di utilizzo! con Contains(), ma andiamo un po' oltre. Un uso classico di Contains() è nel contesto di un messaggio << Select Where(), come dimostrato in questo esempio:
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>
Questo è lo stesso di
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 prima istruzione "Seleziona dove" sopra corrisponde all'output che vedresti se eseguissi il Righe finestra nell'interfaccia utente, accedi a Selezione riga --> Seleziona dove ... e quindi selezionato l'opzione dal menu a discesa nella finestra di dialogo "non contiene".

Come puoi vedere dall'esempio sopra, l'uso di ! può rendere il codice più conciso e leggibile; funziona anche meglio quando vuoi combinare le affermazioni nei tuoi messaggi <
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"));
L'operatore NOT ha molte applicazioni utili in JSL, quindi provalo nel tuo codice. Naturalmente, non esitare a contattare l'assistenza tecnica JMP in caso di problemi o domande!