Go - Operatoren
Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Manipulationen durchzuführen. Die Go-Sprache ist reich an integrierten Operatoren und bietet die folgenden Arten von Operatoren:
- Rechenzeichen
- Vergleichsoperatoren
- Logische Operatoren
- Bitweise Operatoren
- Zuweisungsoperatoren
- Verschiedene Betreiber
In diesem Lernprogramm werden nacheinander arithmetische, relationale, logische, bitweise, Zuweisungs- und andere Operatoren erläutert.
Rechenzeichen
Die folgende Tabelle zeigt alle arithmetischen Operatoren, die von der Sprache Go unterstützt werden. Variable annehmenA hält 10 und variabel B hält dann 20 -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
+ | Fügt zwei Operanden hinzu | A + B ergibt 30 |
- - | Subtrahiert den zweiten Operanden vom ersten | A - B ergibt -10 |
* * | Multipliziert beide Operanden | A * B ergibt 200 |
/. | Teilt den Zähler durch den Nenner. | B / A ergibt 2 |
%. | Moduloperator; gibt den Rest nach einer ganzzahligen Division an. | B% A ergibt 0 |
++ | Inkrementoperator. Es erhöht den ganzzahligen Wert um eins. | A ++ gibt 11 |
- - | Operator dekrementieren. Es verringert den ganzzahligen Wert um eins. | A-- gibt 9 |
Vergleichsoperatoren
In der folgenden Tabelle sind alle von der Sprache Go unterstützten Vergleichsoperatoren aufgeführt. Variable annehmenA hält 10 und variabel B hält 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
== | Es wird geprüft, ob die Werte zweier Operanden gleich sind oder nicht. Wenn ja, wird die Bedingung wahr. | (A == B) ist nicht wahr. |
! = | Es wird geprüft, ob die Werte zweier Operanden gleich sind oder nicht. Wenn die Werte nicht gleich sind, wird die Bedingung wahr. | (A! = B) ist wahr. |
> | Es wird geprüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A> B) ist nicht wahr. |
< | Es wird geprüft, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A <B) ist wahr. |
> = | Es wird geprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A> = B) ist nicht wahr. |
<= | Es wird geprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A <= B) ist wahr. |
Logische Operatoren
In der folgenden Tabelle sind alle logischen Operatoren aufgeführt, die von der Sprache Go unterstützt werden. Variable annehmenA hält 1 und variabel B hält 0, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
&& | Wird als logischer UND-Operator bezeichnet. Wenn beide Operanden ungleich Null sind, wird die Bedingung wahr. | (A && B) ist falsch. |
|| | Wird als logischer ODER-Operator bezeichnet. Wenn einer der beiden Operanden ungleich Null ist, wird die Bedingung wahr. | (A || B) ist wahr. |
! | Wird als logischer NICHT-Operator bezeichnet. Verwenden Sie diese Option, um den logischen Status des Operanden umzukehren. Wenn eine Bedingung wahr ist, macht der Operator Logical NOT false. | ! (A && B) ist wahr. |
Die folgende Tabelle zeigt alle logischen Operatoren, die von der Go-Sprache unterstützt werden. Variable annehmenA gilt wahr und variabel B gilt dann falsch -
Operator | Beschreibung | Beispiel |
---|---|---|
&& | Wird als logischer UND-Operator bezeichnet. Wenn beide Operanden falsch sind, wird die Bedingung falsch. | (A && B) ist falsch. |
|| | Wird als logischer ODER-Operator bezeichnet. Wenn einer der beiden Operanden wahr ist, wird die Bedingung wahr. | (A || B) ist wahr. |
! | Wird als logischer NICHT-Operator bezeichnet. Verwenden Sie diese Option, um den logischen Status des Operanden umzukehren. Wenn eine Bedingung wahr ist, macht der Operator Logical NOT sie falsch. | ! (A && B) ist wahr. |
Bitweise Operatoren
Bitweise Operatoren arbeiten an Bits und führen eine bitweise Operation durch. Die Wahrheitstabellen für &, | und ^ lauten wie folgt:
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Angenommen, A = 60; und B = 13. Im Binärformat sind sie wie folgt:
A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
Die von der Sprache C unterstützten bitweisen Operatoren sind in der folgenden Tabelle aufgeführt. Angenommen, Variable A hält 60 und Variable B hält 13, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
& | Der binäre UND-Operator kopiert ein Bit in das Ergebnis, wenn es in beiden Operanden vorhanden ist. | (A & B) ergibt 12, was 0000 1100 ist |
| | Der binäre ODER-Operator kopiert ein Bit, wenn es in einem der Operanden vorhanden ist. | (A | B) ergibt 61, was 0011 1101 ist |
^ | Der binäre XOR-Operator kopiert das Bit, wenn es in einem Operanden gesetzt ist, aber nicht in beiden. | (A ^ B) ergibt 49, was 0011 0001 ist |
<< | Binärer Linksschaltoperator. Der Wert der linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach links verschoben. | Ein << 2 ergibt 240, was 1111 0000 ist |
>> | Binärer Rechtsschieber. Der Wert der linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach rechts verschoben. | Eine >> 2 ergibt 15, was 0000 1111 ist |
Zuweisungsoperatoren
In der folgenden Tabelle sind alle Zuweisungsoperatoren aufgeführt, die von der Sprache Go unterstützt werden.
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
= | Einfacher Zuweisungsoperator, Weist Werte von Operanden auf der rechten Seite dem Operanden auf der linken Seite zu | C = A + B weist C den Wert von A + B zu |
+ = | UND-Zuweisungsoperator hinzufügen. Er fügt dem linken Operanden den rechten Operanden hinzu und weist das Ergebnis dem linken Operanden zu | C + = A entspricht C = C + A. |
- = | Subtrahieren UND Zuweisungsoperator, subtrahiert den rechten Operanden vom linken Operanden und weist das Ergebnis dem linken Operanden zu | C - = A entspricht C = C - A. |
* = | Multiplizieren Sie den UND-Zuweisungsoperator. Er multipliziert den rechten Operanden mit dem linken Operanden und weist das Ergebnis dem linken Operanden zu | C * = A entspricht C = C * A. |
/ = | UND-Zuweisungsoperator teilen. Er teilt den linken Operanden mit dem rechten Operanden und weist das Ergebnis dem linken Operanden zu | C / = A entspricht C = C / A. |
% = | Modul- UND Zuweisungsoperator. Der Modul wird mit zwei Operanden verwendet und das Ergebnis dem linken Operanden zugewiesen | C% = A entspricht C = C% A. |
<< = | Linksverschiebung UND Zuweisungsoperator | C << = 2 ist dasselbe wie C = C << 2 |
>> = | Rechtsverschiebung UND Zuweisungsoperator | C >> = 2 ist dasselbe wie C = C >> 2 |
& = | Bitweiser UND-Zuweisungsoperator | C & = 2 ist dasselbe wie C = C & 2 |
^ = | bitweises exklusives ODER und Zuweisungsoperator | C ^ = 2 ist dasselbe wie C = C ^ 2 |
| = | bitweises Inklusiv-ODER und Zuweisungsoperator | C | = 2 ist dasselbe wie C = C | 2 |
Verschiedene Betreiber
Es gibt einige andere wichtige Operatoren, die von Go Language unterstützt werden, einschließlich sizeof und ?:.
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
& | Gibt die Adresse einer Variablen zurück. | &ein; liefert die tatsächliche Adresse der Variablen. |
* * | Zeiger auf eine Variable. | *ein; liefert einen Zeiger auf eine Variable. |
Vorrang der Operatoren in Go
Die Operatorrangfolge bestimmt die Gruppierung von Begriffen in einem Ausdruck. Dies wirkt sich darauf aus, wie ein Ausdruck ausgewertet wird. Bestimmte Operatoren haben eine höhere Priorität als andere. Beispielsweise hat der Multiplikationsoperator eine höhere Priorität als der Additionsoperator.
Zum Beispiel x = 7 + 3 * 2; Hier wird x 13 zugewiesen, nicht 20, da der Operator * eine höhere Priorität als + hat. Daher wird er zuerst mit 3 * 2 multipliziert und dann zu 7 addiert.
Hier werden Operatoren mit der höchsten Priorität oben in der Tabelle angezeigt, Operatoren mit der niedrigsten Priorität unten. Innerhalb eines Ausdrucks werden zuerst Operatoren mit höherer Priorität ausgewertet.
Beispiele anzeigen
Kategorie | Operator | Assoziativität |
---|---|---|
Postfix | () [] ->. ++ - - | Links nach rechts |
Einstellig | + -! ~ ++ - - (Typ) * & sizeof | Rechts nach links |
Multiplikativ | * /% | Links nach rechts |
Zusatzstoff | + - | Links nach rechts |
Verschiebung | << >> | Links nach rechts |
Relational | << = >>> = | Links nach rechts |
Gleichberechtigung | ==! = | Links nach rechts |
Bitweises UND | & | Links nach rechts |
Bitweises XOR | ^ | Links nach rechts |
Bitweises ODER | | | Links nach rechts |
Logisches UND | && | Links nach rechts |
Logisches ODER | || | Links nach rechts |
Zuordnung | = + = - = * = / =% = >> = << = & = ^ = | = | Rechts nach links |
Komma | , | Links nach rechts |