Skyrim:Operator Reference
Die Folgenden sind gültige Operatoren in der Papyrus-Sprache:
() [] , = + - * / % . "" ! == !=> <>= <= || && += -= *= /= %= as
Inhaltsverzeichnis
Klammern
()
Klammern erzwingen die Auswertung eines Ausdruckes innerhalb der Klammer, bevor Operationen außerhalb der Klammern stattfinden. Wenn sie einer Funktion folgen, enthalten sie die Parameterliste für die Funktion.
Beispiele:
<papyrusscript>
- i bekommt den Wert 9
i = (1 + 2) * 3
</papyrusscript>
<papyrusscript>
- Ruft die Funktion MyFunction mit dem Parameter 10 auf
MyFunction(10) </papyrusscript>
Eckige Klammern
[]
Eckige Klammern werden für Arrays genutzt, um entweder auf ein bestimmtes Array-Element zuzugreifen oder um die Länge eines neuen Arrays festzulegen oder um festzulegen, dass ein Typ ein Array-Typ ist.
Beispiele: <papyrusscript>
- i bekommt den Wert des Elementes 0 des Arrays
i = myArray[0]
</papyrusscript>
<papyrusscript>
- definiere ein Array der Länge 10
int[] myArray = new int[10] </papyrusscript>
Komma
,
Der Komma-Operator trennt Parameter in einer Funktionsdefinition oder einem Funtionsaufruf.
Beispiele: <papyrusscript>
- ruft die Funktion MyFunction mit den Parametern 10 und 20 auf
MyFunction(10, 20) </papyrusscript>
Mathematische Operatoron
+ - * / %
Mathematische Operatoron führen einige Arten von Operationen auf den zwei Ausdrücken aus, zwischen denen es sitzt. Papyrus unterstützt Zuweisung, Addition, Subtraktion, Multiplikation, Division und den als Integer-Modulus Integer-Modulus. Das Minus-Zeichen wird ebenfalls für die Negation benutzt (auch bekannt als Unäres Minus. Der Additions-Operator wird auch benutzt, um Strings zusammen zu fügen.
Beispiele: <papyrusscript>
- i bekommt den Wert 7
i = 1 + 2 * 3
</papyrusscript>
<papyrusscript>
- i bekommt den Wert 1
i = 9 % 4
</papyrusscript>
<papyrusscript>
- bekommt den String "Hello World"
i = "Hello " + "World"
</papyrusscript>
Das nächste Beispiel wird nicht übersetzt wie vielleicht erwartet, weil das Minuszeichen ebenfalls für die Negation genutzt wird
<papyrusscript>
int x
int y
x = 22
y = x-1 ; compiler: keine realisierbare Alternative am Input 'x'
</papyrusscript>
Punkt
.
Der Punkt-Operator nach einem Variablennamen dient dazu, Funktionen auf ihr aufzurufen oder um auf Properties zuzugreifen.
Beispiele: <papyrusscript> , ruft die Funktion auf der Variablen auf
myVariable.MyFunction()
</papyrusscript>
<papyrusscript>
- Setzt die Property auf 10
myVariable.MyProperty = 10 </papyrusscript>
Anführungszeichen
""
Anführungszeichen umschließen String Literals.
Beispiele: <papyrusscript>
- ein elementarer ‚hello world‘-String
hello = "Hello World!" </papyrusscript>
Logische Operatoren
! || &&
Logische Operatoren führen zu Werten „True“ (wahr) oder „False“ (falsch) abhängig von ihrem Ausdruck.
- Der NOT Operator (!) wird True wenn der einfache Ausdruck (auf der rechten Seite des Operators) False ist und False wenn er True ist.
- Der OR Operator (||) wird True wenn einer der Ausdrücke auf der rechten oder linken Seite des Operators True ist. Er wird kurzgeschlossen, wenn der linke Ausdruck True ist (die Auswertung des rechten Ausdruckes wird überhaupt nicht mehr durchgeführt)
- Der AND Operator (&&) wird True wenn beide Ausdrücke auf der rechten und linken Seite des Operators True sind. Er wird kurzgeschlossen, wenn der linke Ausdruck False ist (die Auswertung des rechten Ausdruckes wird überhaupt nicht mehr durchgeführt)
Beispiele: <papyrusscript>
- i wird true wenn sowohl a als auch b true sind
i = a && b
</papyrusscript>
<papyrusscript>
- i wird true wenn a false ist
i = !a
</papyrusscript>
<papyrusscript>
- der Kurzschluss kann sicherstellen, dass eine Referenz existiert, bevor man etwas damit macht
if ref && ref.HasKeyword(VendorItemClutter) </papyrusscript>
Vergleichs-Operatoren
== != <> <=>=
Die Vergleichs-Operatoren vergleichen beide Ausdrücke auf ihren linken und rechten Seite und geben einen booleschen Wert abhängig vom genutzten Operator aus. Wenn Gleitkommazahlen verglichen werden, wird ein kleines Epsilon berücksichtigt, um dem Fehler bei Gleitkommazahlen-berechnungen zu begegnen.
- Gleichheit (==) gibt true zurück wenn beide Ausdrücke gleiche Werte haben.
- Ungleichheit (!=) gibt true zurück wenn beide Ausdrücke ungleiche Werte haben.
- Kleiner-als (<) gibt true zurück wenn der Wert des rechten Ausdrucks kleiner als der des linken ist
- Größer-als (>) gibt true zurück wenn der Wert des rechten Ausdrucks größer als der des linken ist
- Kleiner-als oder gleich (<=) gibt true zurück wenn der Wert des rechten Ausdrucks kleiner als der des linken oder gleich ist
- Größer -als oder gleich (>=) gibt true zurück wenn der Wert des rechten Ausdrucks größer als der des linken oder gleich ist
Beispiele: <papyrusscript>
- i wird true wenn a größer als b ist
i = a> b
</papyrusscript>
<papyrusscript>
- i wird true wenn a gleich als b ist
i = a == b </papyrusscript>
Zuweisungs-Operatoren
= += -= *= /= %=
Zuweisungs-Operatoren weisen den Wert des rechten Ausdrucks der Variablen (oder Property) des linkes Ausdrucks zu. Wenn das Gleichheitszeichen einen mathematischen Operator vorangestellt bekommen hat, dann wird der Wert des rechten Ausdrucks dem aktuellen Wert des linken Ausdrucks hinzugefügt und dann dem linken Ausdrucks zugewiesen. Beachte, wenn der linke Ausdruck eine Property ist, werden sowohl die Get- als auch die Set-Funktion aufgerufen.
Beispiele: <papyrusscript>
- weise i 10 zu
i = 10
</papyrusscript>
<papyrusscript>
- füge dem aktuelle Wert von i 1 hinzu und weise das Ergebnis i zu i
i += 1 </papyrusscript>
Cast
as
Der cast-Operator versucht, den Wert des linken linke Ausdrucks in den Typ des rechten zu casten (d.h. umzuwandeln) und den Wert des Ergebnisses zurück zu geben.
Beispiele: <papyrusscript>
- castet a zu einem Float und weist den Wert i zui
i = a as float </papyrusscript>
Operatorrangfolge
Die Operatorrangfolge ist in der folgenden Tabelle vom höchsten zum niedrigsten gelistet
() | Mathematische Klammern |
. | Punkt-Operator (für den Zugriff auf Funktionen und Properties) |
as | Cast-Operator |
- ! | Unäres Minus und logisches NOT |
* / % | Multiplikation, Division und Integer-Modulus |
+ - | Addition und Subtraktion |
== !=> <>= <= | Vergleichs-Operatoren |
&& | Logisches AND |
|| | Logisches OR |
= += -= *= /= %= | Zuweisung |
Links
- Operator Reference (das englische Original des obigen Artikels)