Ein nützliches Werkzeug zum Bearbeiten boolescher Ausgaben, das ! (NOT)-Operator in JMP kann auch andere wertvolle Anwendungen haben, z. B. die Verwendung mit Contains() in der an JMP-Datentabellen gesendeten <
Lassen Sie uns hier zunächst klarstellen, dass es sich um die Verwendung von ! handelt. als Operator und nicht als syntaktisches Werkzeug, das in verwendet wird Escape-Sequenzen in zitierten Zeichenfolgen; In diesen Fällen hat es nicht die Bedeutung NOT.
Sie können sich vorstellen ! wie jede andere Operator im JMP. Sie kennen wahrscheinlich die gebräuchlichsten: Addieren (+), Subtrahieren (-), Multiplizieren (*), Dividieren (/) usw. Im Allgemeinen ist ein Operator ein aus einem oder zwei Zeichen bestehendes Symbol, das zum Ausführen allgemeiner arithmetischer Aktionen, zum Vergleichen von Werten, zum Erstellen von Listen, zum Indexieren in ein Datenelement, zum Senden von Nachrichten, zum Verketten von Listen, zum Verknüpfen von Bereichsnamen, zum Zusammenfügen von Ausdrücken und zum Beenden von Ausdrücken verwendet wird .
Der ! Das Zeichen (häufig als „Bang“-Zeichen bezeichnet) in JMP wird im JSL-Code als Operator verwendet, um ein logisches NICHT anzugeben, was im Kontext boolescher Werte (wahr oder falsch) bedeutet, dass es einen Wert ungleich Null (oder wahr) abbildet )-Werte auf 0 (was „falsch“ bedeutet) und ordnet 0-Werte (0 oder falsch) auf 1 (was „wahr“ bedeutet) zu.
Hier sind einige einfache Beispiele für seine Verwendung:
Beispiel 1:
x = 1;
!x;
//LOG RESULT: 0
Beispiel 2:
x = 0;
!x;
//LOG RESULT: 1
Beispiel 3:
!(1 < 2);
//LOG RESULT: 0
Wenn Sie es mit anderen Operatoren gruppieren, können Sie davon ausgehen, dass es zu anderen „logischen“ Operatoren wie OR (|) und AND (&) gehört, die normalerweise in If()-Anweisungen verwendet werden.
Beispiel 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"
Hinweis: Beachten Sie hier, dass Sie NOT Equal mit != oder dem Hinzufügen von ! bestätigen können. vor dem gesamten Gleichheitsausdruck, z. B. !(x==3).
Beispiel 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"
Es gibt viele Situationen, in denen die Verwendung hilfreich sein kann! wobei es nicht auf Ihre If()-Anweisungen wie oben beschränkt ist. Wir haben ein Beispiel für die Verwendung von ! gesehen. mit Contains(), aber gehen wir noch etwas weiter. Eine klassische Verwendung von Contains() ist im Kontext einer << Select Where()-Nachricht, wie in diesem Beispiel gezeigt:
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>
Das ist das Gleiche wie
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 />
Die erste „Select Where“-Anweisung oben entspricht der Ausgabe, die Sie sehen würden, wenn Sie die durchgehen würden Reihen Fenster in der Benutzeroberfläche, zu dem navigiert wurde Zeilenauswahl -> Wo auswählen … und dann im Dropdown-Menü im Dialog die Option „enthält nicht“ ausgewählt.

Wie Sie dem obigen Beispiel entnehmen können, ist die Verwendung von ! kann Code prägnanter und lesbarer machen; Es funktioniert auch besser, wenn Sie Anweisungen in Ihren <
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"));
Der NOT-Operator hat viele nützliche Anwendungen in JSL, also probieren Sie ihn in Ihrem Code aus. Wenn Sie auf Probleme stoßen oder Fragen haben, können Sie sich natürlich jederzeit an den technischen Support von JMP wenden!