Schlüsselwörter
Diese Referenz behandelt die DelphiScript-Schlüsselwörter, die für das Scripting System in Altium Designer verwendet werden. Das Scripting System unterstützt die Sprache DelphiScript, die der Programmiersprache Embarcadero Delphi™ sehr ähnlich ist. Der wesentliche Unterschied besteht darin, dass DelphiScript eine typfreie Skriptsprache ist.
In diesem Abschnitt werden gängige DelphiScript-Schlüsselwörter mit detaillierten Informationen und Beispielen beschrieben. Weitere Informationen zu Schlüsselwörtern, etwa zu Delphi-Datei-, Mathematik- und String-Verarbeitungsroutinen, finden Sie unter Functions und in der Embarcadero Delphi Reference.
And
Declaration
Der Operator And führt ein logisches/bitweises Und aus.
Description
Der Operator And führt ein logisches Und aus, wenn die Operanden vom booleschen Typ sind, oder ein bitweises And, wenn die Operanden Ganzzahlen sind.
Example of a boolean And evaluation:
Var
I, J : Integer
Begin
I := $F0;
J := $8F;
ShowMessage(IntToStr(I and J));
End;
Example of a logical And evaluation:
Var
S : String;
Begin
S := '';
If (Length(S) > 0) and (S[1\] = 'X') Then Delete(S,1,1);
End;
See also
Or-Schlüsselwort
Xor-Schlüsselwort
Array
Declaration
Array [index range];
Description
DelphiScript ist eine typfreie Sprache, daher muss die Größe bzw. der Bereich eines Arrays angegeben werden. Welchen Typ von Elementen das Array enthalten kann, kann weiterhin definiert werden, ist jedoch nicht erforderlich. Die Deklaration Open array wird nicht unterstützt.
Example:
var x : array [1..2];
Begin
Declaration
Begin
statement
End;
Description
Das Schlüsselwort begin startet einen Block im Skript. Ein Block ist der Hauptteil eines Skripts und kann eine beliebige Anzahl von Anweisungen enthalten. Er kann überall dort verwendet werden, wo eine einzelne Anweisung erforderlich ist, etwa als Rumpf einer Bedingungs- oder Schleifenanweisung.
Example:
Var
Test : Integer;
Begin
Test := Test + 4;
ShowMessage(IntToStr(Test));
End;
See also
End-Schlüsselwort
Declaration
Break;
Description
Ein Break verlässt eine Schleife, ähnlich wie eine Goto-Anweisung.
Example:
While Condition Do
Begin
DoSomething;
Begin
If AnotherCondition Then
Break;
End;
End;
See also
While-Schlüsselwort
Continue-Schlüsselwort
Do-Schlüsselwort
Repeat-Schlüsselwort
Case
Declaration
Case expression Of
Value range : Expression;
Else Expression;
End;
Description
Die Case-Anweisungen wählen abhängig vom Wert des Ausdrucks einen Zweig aus vielen möglichen Zweigen aus.
In vielen Situationen kann eine komplexe Menge von If-Anweisungen vereinfacht werden, indem sie durch Case-Anweisungen ersetzt werden. Eine case-Anweisung in einem Ausdruck wird verwendet, um einen Wert, eine Liste möglicher Werte oder einen Wertebereich auszuwählen. In einer case-Anweisung können beliebige Typen verwendet werden, da DelphiScript eine untypisierte Sprache ist. Case-Anweisungen können eine else-Anweisung enthalten, die ausgeführt wird, wenn keines der Labels dem Wert des Selektors entspricht (innerhalb der Case Of-Bedingung).
Example 1:
Case Char Of
'+' : Text := 'Plus sign';
'-' : Text := 'Minus sign';
'*', '/': Text := 'Multiplication or division';
'0'..'9': Text := 'Number';
'a'..'z': Text := 'Lowercase character';
'A'..'Z': Text := 'Uppercase character';
Else
Text := 'Unknown character';
End;
Example 2:
Case UserName Of
Jack', 'Joe' : IsAdministrator := true;
'Fred' : IsAdministrator := false;
Else
Raise('Unknown User');
End;
See also
Of-Schlüsselwort
Continue
Declaration
Continue
Description
Die Anweisung Continue überspringt den Rumpf einer Schleife, ähnlich wie die Anweisung Goto;
Example:
Var
I := 0; s:= 1;
Begin
While True Do
Begin
S := S \* 2;
I := I \\+ 1;
If I <> 4 then continue;
Break;
End;
See also
Break-Schlüsselwort
While-Schlüsselwort
Continue-Schlüsselwort
Do-Schlüsselwort
Repeat-Schlüsselwort
Const
Declaration
Const
Name = Expression;
Description
Das Schlüsselwort Const legt einen Ausdruck mit konstantem Wert als Wert einer Konstante fest. Wenn Sie versuchen, den Ausdruck zu ändern, der im Skript vom Typ const ist, gibt das Scripting System einen Fehler wegen eines nicht deklarierten Bezeichners aus.
Example:
Const
b = 30;
Begin
ShowMessage(IntTtStr(b));
End;
Ein Versuch, den Wert des Parameters b const zu ändern, erzeugt beispielsweise einen Fehler:
Const
b = 30;
Begin
b := 40;
ShowMessage(IntToStr(b));
End;
Div
Declaration
dividend div divisor
Description
Der Operator Div führt eine Ganzzahldivision aus, bei der Nachkommenergebnisse ohne Rundung verworfen werden. Wenn der Divisor null ist, meldet DelphiScript einen Fehler.
See also
Mod-Operator
Div-Operator
Do
Declaration
-
For variable := expression1 to expression2 doAnweisung -
While expression do-Anweisung -
With expression do-Anweisung.
Description
Das Schlüsselwort Do ist Teil der For, While and With-Anweisungen von DelphiScript.
Example:
For i := 0 To AnIndex - 1 Do
S := S + #13 + AString;
See also
For-Schlüsselwort
To-Schlüsselwort
While-Schlüsselwort
With-Schlüsselwort
DownTo
DownTo
Declaration
For variable := expression1 DownTo expression2 Do statement.
Description
Verwenden Sie DownTo in einer For-Schleife, um herunterzuzählen.
See also
For-Schlüsselwort
To-Schlüsselwort
Do-Schlüsselwort
Else
Declaration
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
Description
Das Schlüsselwort Else leitet den Auffangteil mehrerer Anweisungen ein. Beachten Sie, dass auf den else-Teil einer if-Anweisung eine einzelne Anweisung folgt, während der else-Teil der Anweisungen try-except und case mehrere Anweisungen enthalten kann.
See also
If-Schlüsselwort
Then-Schlüsselwort
Try-Schlüsselwort
Case-Schlüsselwort
End
Declaration
-
Begin statements End; -
Try statements Except Exception clauses... else Statements... End; -
Try statements Finally statements End; -
Case Expression of clauses Else statements... End;
Description
Das Schlüsselwort End beendet einen Block oder einen mehrteiligen Abschnitt wie Deklarationen, Case-Anweisungen usw.
See also
Begin-Schlüsselwort
Case-Schlüsselwort
Try-Schlüsselwort
Except
Declaration
Try statements Except statements End;
Description
Verwenden Sie Try-Except-Blöcke, um Ausnahmefälle zu behandeln, zum Beispiel um bestimmte Ausnahmen abzufangen und etwas Nützliches damit zu tun, etwa sie einem Fehlerprotokoll hinzuzufügen oder ein benutzerfreundliches Dialogfeld zu erstellen. Da das Schlüsselwort On in DelphiScript nicht unterstützt wird, verwenden Sie die Anweisung Raise innerhalb des Blocks Except und geben nur eine Textmeldung aus.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
End-Schlüsselwort
Finally-Schlüsselwort
Try-Schlüsselwort
Finally
Declaration
Try statements... Finally statements... End;
Description
Das Schlüsselwort finally startet den Finally-Teil eines try-finally-Blocks. Die Anweisungen im Block finally werden immer ausgeführt, unabhängig davon, wie die Steuerung den Block try verlässt – durch Ausnahme, exit oder break. Die Verwendung des Blocks try-finally wird beim Erzeugen/Zerstören von Objekten und bei Datei-I/O empfohlen.
See also
End-Schlüsselwort
Raise-Schlüsselwort
Try-Schlüsselwort
For
Declaration
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
Description
Eine for-Schleife wertet die Ausdrücke aus, die die Grenzen dieser Schleife festlegen, und führt dann den Schleifenrumpf wiederholt über die Schleifensteuerungsvariable aus, die nach jeder Iteration aktualisiert wird.
Example:
For i := 0 to AnIndex - 1 Do
Begin
S := S + #13 + AString;
End;
ShowMessage(S);
See also
Do-Schlüsselwort
DownTo-Schlüsselwort
Repeat-Schlüsselwort
To-Schlüsselwort
While-Schlüsselwort
With-Schlüsselwort
Forward
Declaration
subroutine header; forward;
Description
Die Direktive Forward erlaubt es, eine Funktion oder Prozedur zu deklarieren, bevor sie aufgerufen wird, indem der Header (Name, Parameter und Rückgabetyp) mit der Direktive forward deklariert wird.
Function
Declaration
Function name (parameters) : return type;
Description
Eine Function ist ein Unterprogramm, das einen Wert zurückgibt. Beachten Sie, dass Zeiger auf Funktionen in Skripten nicht zulässig sind — das heißt, funktionale Typen können nicht definiert werden. Variablen, die innerhalb einer Funktion deklariert werden, sind außerhalb dieser Prozedur nicht zugänglich.
Example
Function TestFunc(Min, Max : integer) : integer;
Begin
Result := Random(Max - Min +1);
End;
Goto
Declaration
goto label
Description
Die Anweisung goto überträgt die Steuerung an das angegebene Label. Das Label kann ein beliebiger Bezeichner oder eine Ziffernfolge mit bis zu vier Ziffern sein.
Example
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Label-Schlüsselwort
If
Declaration
-
if condition then statement; -
if condition then statement1 else statement2;
Description
Die Bedingung für das Schlüsselwort If muss ein boolescher Ausdruck sein. Das Schlüsselwort Else ist optional.
Example
If A > B Then
ShowMessage('X>Y and A > B');
Else
ShowMessage('X>Y and A <=B');
End;
See also
And-Schlüsselwort
Begin-Schlüsselwort
Or-Schlüsselwort
Then-Schlüsselwort
Else-Schlüsselwort
Interface
Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;
Description
Das Schlüsselwort interface ermöglicht den Zugriff auf ein vorhandenes Objekt im Speicher und ruft die Methoden des Objekts auf. Ein Interface kann nur aus Eigenschaften und Methoden bestehen — keine Daten. Da Interfaces keine Daten enthalten können, müssen ihre Eigenschaften über Methoden schreiben und lesen. Vor allem haben Interfaces keine Implementierung, da sie nur einen Vertrag für ein vorhandenes Objekt im Speicher definieren.
Ein Interface kann als Kontaktpunkt zu einem vorhandenen Objekt im Speicher des Computers verstanden werden und bietet die Möglichkeit, Daten über Eigenschaften des Interfaces zu lesen bzw. zu schreiben. Das Interface fordert Daten von seinem zugehörigen Objekt an.
DelphiScript ist eine typfreie Sprache, daher können Sie keine neuen Typen wie neue Records, Arrays oder Klassen und auch keine zugehörigen Interfaces definieren.
Label
Declaration
label digits, identifier, ...;
Description
Das Schlüsselwort label deklariert ein oder mehrere Labels. Ein Label kann eine Ziffernfolge mit bis zu vier Ziffern oder ein Bezeichner sein. Ein Label kann im selben Block verwendet werden, um eine Anweisung als Ziel einer goto-Anweisung zu kennzeichnen.
Example:
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Goto-Schlüsselwort
Mod
Declaration
Integer expression mod integer expression
Description
Der Operator mod führt eine Ganzzahl-Modulo- bzw. Restwertoperation aus. Das Ergebnis von A mod B ist A - (A div B) * B.
See also
Div-Funktion
Nil
Declaration
const nil = pointer(0);
Description
Das Schlüsselwort nil ist ein spezieller Zeigerwert, der garantiert eindeutig ist und auf nichts zeigt.
Not
Declaration
-
not boolean expression -
not integer expression
Description
Der Operator not führt eine Negation aus. Wenn der Operand vom booleschen Typ ist, ist das Negative eine logische Negation. Not False = True und not true = false. Wenn der Operand eine Ganzzahl ist, führt der Operator not eine bitweise Negation jedes Bits im Ganzzahlwert aus — also eine Komplementoperation.
Of
Declaration
case expression of
selector: expression1
...
end
Description
Das Schlüsselwort Of wird für die Anweisung case verwendet.
See also
Case-Anweisung
Or
Declaration
-
boolean expression or boolean expression -
integer expression or integer expression
Description
Der Operator or führt ein logisches Or aus, wenn die Operanden vom booleschen Typ sind, oder ein bitweises Or, wenn die Operanden Ganzzahlen sind. Ein logisches Or ist nur dann false, wenn beide Operanden false sind; andernfalls ist es true, wenn mindestens ein Operand true ist.
See also
And-Schlüsselwort
Not-Schlüsselwort
Shl-Schlüsselwort
Shr-Schlüsselwort
Xor-Schlüsselwort
Procedure
Declaration
-
Procedure name; -
Procedure Name (Parameter, ...);
Description
Das Schlüsselwort procedure deklariert ein Unterprogramm, das keinen Rückgabetyp hat. Variablen, die innerhalb einer Prozedur deklariert werden, sind außerhalb dieser Prozedur nicht zugänglich. Beachten Sie, dass dieses Schlüsselwort verwendet werden kann, vom Scripting System jedoch ignoriert wird.
Example:
Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
Rand := Random(Max);
End;
See also
Function-Schlüsselwort
Program
Declaration
Program Name;
declarations...
Block
Description
Das Schlüsselwort program beginnt ein Skript. Die Dateierweiterung für ein Skript ist *.pas. Beachten Sie, dass dieses Schlüsselwort verwendet werden kann, vom Scripting System jedoch ignoriert wird.
See also
Function-Schlüsselwort
Raise
Declaration
Raise statement;
Description
Das Schlüsselwort raise steht in Zusammenhang mit dem Schlüsselwort Try. Das Schlüsselwort Raise kann ohne Parameter verwendet werden, um die letzte Ausnahme erneut auszulösen. Es kann auch mit einem String-Parameter verwendet werden, um mit einer bestimmten Meldung eine Ausnahme auszulösen.
Example:
Raise(Format('Invalid Value Entered : %d', \[Height]));
Beachten Sie, dass das Schlüsselwort On in DelphiScript nicht unterstützt wird, daher können die Exception-Objekte in Skripten nicht verwendet werden.
Repeat
Declaration
repeat
statements;
until boolean expression
Description
Die Anweisungen innerhalb eines Repeat Until-Blocks werden wiederholt ausgeführt, bis der boolesche Ausdruck wahr ist.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Until-Schlüsselwort
Result
Declaration
Var result : Function return type;
Description
Jede Funktion in einem Skript muss das Schlüsselwort Result verwenden, um einen Ergebniswert zurückzugeben. Der Variablentyp ist der Rückgabetyp der Funktion.
See also
Function-Schlüsselwort
Shl
Declaration
value shl bits
Description
Der Operator shl führt eine Linksverschiebung eines Ganzzahlwerts um Bits Bitpositionen durch. Die frei werdenden Bits werden rechts mit Nullbits aufgefüllt.
See also
And-Schlüsselwort
Not-Schlüsselwort
Or-Schlüsselwort
Shr-Schlüsselwort
Xor-Schlüsselwort
Shr
Declaration
value shr bits
Description
Der Operator shr führt eine Rechtsverschiebung eines Ganzzahlwerts um Bits Bitpositionen durch. Die frei werdenden Bits werden links mit Nullbits aufgefüllt.
See also
And-Schlüsselwort
Not-Schlüsselwort
Or-Schlüsselwort
Shl-Schlüsselwort
Xor-Schlüsselwort
String
Declaration
-
type string; -
type Name = string[Constant]
Description
Das Schlüsselwort string steht für den String-Typ.
Then
Declaration
If expression then statement
Description
Das Schlüsselwort Then ist Teil einer If-Anweisung.
See also
If-Schlüsselwort
To
Declaration
For variable := expression1 to expression2 do statement
Description
Das Schlüsselwort to ist Teil einer for-Schleife, die hochzählt.
Example
For i := 0 to AnIndex - 1 do
S := S + #13 + AString;
See also
Downto-Schlüsselwort
For-Schlüsselwort
Try
Declaration
-
Try statements finally statements end; -
Try statements except statements end;
Description
Das Schlüsselwort try leitet eine try-except-Anweisung oder eine try-finally-Anweisung ein. Diese beiden Anweisungen sind verwandt, dienen jedoch unterschiedlichen Zwecken.
Try Finally
Die Anweisungen im finally-Block werden immer ausgeführt, unabhängig davon, wie die Steuerung den Try-Block verlässt: Ausnahme, Exit oder Break. Verwenden Sie den try-finally-Block, um temporäre Objekte und andere Ressourcen freizugeben und Aufräumarbeiten durchzuführen. In der Regel benötigen Sie in einer Unterroutine nicht mehr als eine try-finally-Anweisung.
Example:
Reset(F);
Try
... // process file F
Finally
CloseFile(F);
End;
Try Except
Verwenden Sie try-except, um Ausnahmefälle zu behandeln, zum Beispiel um bestimmte Ausnahmen abzufangen und etwas Nützliches damit zu tun, etwa sie einem Fehlerprotokoll hinzuzufügen oder ein benutzerfreundliches Dialogfeld zu erstellen. Da das Schlüsselwort On in DelphiScript nicht unterstützt wird, verwenden Sie die Anweisung Raise innerhalb des Except-Blocks.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
Raise-Schlüsselwort
Type
Declaration
Type Name = type declaration ...
Description
Das Schlüsselwort Type deklariert den Typ einer Variablen. Da DelphiScript eine typfreie Sprache ist, ist es nicht erforderlich, Variablen eines bestimmten Typs zu deklarieren, dies kann jedoch der besseren Lesbarkeit von Skripten dienen. Alle Variablen in einem Skript sind immer vom Typ Variant. Die größte Einschränkung beim Schreiben von Skripten besteht darin, dass Sie keine Records oder Klassen deklarieren können.
Typumwandlung wird in Skripten ignoriert, daher werden Typen in Variablendeklarationen ignoriert und können weggelassen werden. Diese Deklarationen sind daher korrekt:
Example:
var a : integer;
var b : integer;
var c, d;
Typen von Parametern in Prozedur-/Funktionsdeklarationen werden ignoriert und können weggelassen werden. Zum Beispiel ist dieser Code korrekt:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
Im Allgemeinen können Variants verwendet werden, um jeden Datentyp zu speichern und zahlreiche Operationen und Typkonvertierungen durchzuführen. Ein Variant wird zur Laufzeit typgeprüft und berechnet. Der Compiler warnt nicht vor möglichen Fehlern im Code, die nur durch umfangreiche Tests erkannt werden können. Insgesamt können die Codeteile, die Variants verwenden, als interpretierter Code betrachtet werden, da viele Operationen erst zur Laufzeit aufgelöst werden können. Dies kann die Geschwindigkeit des Codes beeinträchtigen.
Example:
Var
V
Begin
// you can assign to it values of several different types:
V := 10;
V := 'Hello, World';
V := 45.55;
End;
See also
Var-Schlüsselwort
Unit
Declaration
-
Unit Name;
interface
declarations
implementation
declarations
statements
Initialization
statements
finalization
statements
end.
-
Unit Name;
interface
declarations
implementation
declarations
statements
begin
statements
end.
Das Schlüsselwort unit leitet eine Unit ein, die das grundlegende Modul für ein Skript ist. Beachten Sie, dass dieses Schlüsselwort verwendet werden kann, vom Skriptsystem jedoch ignoriert wird.
See also
Function-Schlüsselwort
Program-Schlüsselwort
Until
Declaration
Repeat
Statements;
Until boolean expression
Description
Das Schlüsselwort until kennzeichnet das Ende des Repeat-Until-Blocks. Die Anweisungen innerhalb eines Repeat-Until-Blocks werden wiederholt ausgeführt, bis der boolesche Ausdruck wahr ist.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Repeat-Schlüsselwort
Uses
Declaration
Uses Unit Name, ...;
Description
Das Schlüsselwort uses listet die Namen von Units auf, die in die umgebende Unit importiert werden. Die Deklaration uses ist optional, da das Skriptsystem Units unterstützt, die in Altium Designer importiert werden. Sie können die Uses-Deklaration der besseren Lesbarkeit halber einfügen.
Alle Units, die innerhalb desselben Projekts gespeichert sind, können auf globale Variablen aus jeder dieser Units zugreifen. Beachten Sie dies beim Deklarieren von Variablen in Units innerhalb desselben Projekts.
Die APIs von Client, PCB, Schematic und WorkSpace Manager von Altium Designer sowie Delphis SysUtils, Classes und andere Units werden importiert und stehen in Skripten zur Verfügung – daher besteht keine besondere Notwendigkeit, diese Units in Skripten zu deklarieren.
See also
Ausführlichere Informationen zur Altium Designer API finden Sie in der Dokumentation Using the Altium Designer API.
Var
Declaration
Name : Type
Name : Type = Expression;
DelphiScript Variables
Alle Variablen in einem Skript sind immer vom Typ Variant. Typumwandlung wird ignoriert. Typen in Variablendeklarationen werden ignoriert und können weggelassen werden, daher sind diese Deklarationen korrekt:
Var a : integer;
Var b : integer;
Var c, d;
Typen von Parametern in Prozedur-/Funktionsdeklarationen werden ignoriert und können weggelassen werden. Zum Beispiel ist dieser Code korrekt:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
Im Allgemeinen können Variants verwendet werden, um jeden Datentyp zu speichern und zahlreiche Operationen und Typkonvertierungen durchzuführen. Ein Variant wird zur Laufzeit typgeprüft und berechnet. Der Compiler warnt nicht vor möglichen Fehlern im Code, die nur durch umfangreiche Tests erkannt werden können. Insgesamt können die Codeteile, die Variants verwenden, als interpretierter Code betrachtet werden, da viele Operationen erst zur Laufzeit aufgelöst werden können. Dies kann die Geschwindigkeit des Codes beeinträchtigen.
Deklarieren einer Variant-Variablen:
Var
V;
Begin
// you can assign to it values of several different types:
V := 10;
V := 'Hello, World';
V := 45.55;
End;
Array elements
der Typ von Array-Elementen wird ignoriert und kann weggelassen werden, daher sind diese Deklarationen gleichwertig:
Var x : array [1..2] of double;
Var x : array [1..2];
Illegal array example:
Type
TVertices = Array [1..50] Of TLocation;
Var
NewVertices : TVertices;
Legal array example:
Var
NewVertices : Array [1..50] of TLocation;
While
Declaration
while expression do statement
Description
Die Anweisung while führt die Anweisung wiederholt aus, solange der Ausdruck wahr ist.
See also
Break-Schlüsselwort
Continue-Schlüsselwort
Do-Schlüsselwort
DownTo-Schlüsselwort
For-Schlüsselwort
Repeat-Schlüsselwort
To-Schlüsselwort
With-Schlüsselwort
With
Declaration
with expression do statement
Description
Die Anweisung With fügt einen Record-, Objekt-, Klassen- oder Interface-Verweis zum Gültigkeitsbereich für die Auflösung von Symbolnamen hinzu.
Normal version example:
Form.Canvas.Pen.Width := 2;
Form.Canvas.Pen.Color := clSilver;
With version example:
With Form.Canvas.Pen do
Begin
Width := 2;
Color := clSilver;
End;
See also
Do-Schlüsselwort
Xor
Declaration
- boolescher Ausdruck Xor boolescher Ausdruck
-
integer expression Xor integer expression
Description
Der Operator xor führt ein exklusives Oder für seine Operanden aus. Wenn die Operanden vom booleschen Typ sind, gibt er ein boolesches Ergebnis zurück — wahr, wenn die Operanden unterschiedlich sind, und falsch, wenn sie gleich sind.
Ein ganzzahliges xor arbeitet auf jedem Bit seiner Operanden und setzt das Ergebnisbit auf 1, wenn die entsprechenden Bits in beiden Operanden unterschiedlich sind, und auf 0, wenn beide Operanden identische Bits haben. Wenn ein Operand kleiner ist als der andere, wird der kleinere Operand in den höchstwertigen Bits links mit 0 erweitert.
See also
And-Schlüsselwort
Not-Schlüsselwort
Or-Schlüsselwort
Shl-Schlüsselwort
Shr-Schlüsselwort