Scala Operator
Ein Operator ist ein Symbol, verwendet, um den Compiler zu sagen, eine spezifizierte mathematische und logische Operationen auszuführen.
Scala reich integrierten Operatoren, einschließlich der folgenden Arten:
Arithmetische Operatoren
Relationale Operatoren
Logische Operatoren
Bitweise Operatoren
Zuweisungsoperatoren
Als nächstes werden wir Ihnen mehr als die Anwendung verschiedener Betreiber erklären.
Arithmetische Operatoren
In der folgenden Tabelle sind die Scala Unterstützung arithmetischen Operatoren.
Eine Variable angenommen als 10, B 20:
Die Betreiber | Beschreibung | Beispiele |
---|---|---|
+ | plus | A + B Operationsergebnis 30 |
- | minus | A - B Operationsergebnis -10 |
* | Multiplikationszeichen | A * B Operationsergebnis 200 |
/ | Zeichen der Teilung | B / A-Operationsergebnis ist 2 |
% | Rest | B% Ein Rechenergebnis 0 |
Beispiele
object Test { def main(args: Array[String]) { var a = 10; var b = 20; var c = 25; var d = 25; println("a + b = " + (a + b) ); println("a - b = " + (a - b) ); println("a * b = " + (a * b) ); println("b / a = " + (b / a) ); println("b % a = " + (b % a) ); println("c % a = " + (c % a) ); } }
Ausführung einer Instanz »
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test a + b = 30 a - b = -10 a * b = 200 b / a = 2 b % a = 0 c % a = 5
Relationale Operatoren
Die folgende Tabelle listet die Scala relationalen Operatoren unterstützen.
Eine Variable angenommen als 10, B 20:
Die Betreiber | Beschreibung | Beispiele |
---|---|---|
== | gleich | (A == B) Operationsergebnis ist falsch |
! = | Ist das nicht gleich | (A! = B) Operationsergebnis ist wahr |
> | größer als | (A> B) Operationsergebnis ist falsch |
< | Weniger als | (A <B) Operationsergebnis ist wahr |
> = | Größer als oder gleich | (A> = B) das Operationsergebnis ist falsch |
<= | Weniger als oder gleich | (A <= B) Operationsergebnis ist wahr |
Beispiele
object Test { def main(args: Array[String]) { var a = 10; var b = 20; println("a == b = " + (a == b) ); println("a != b = " + (a != b) ); println("a > b = " + (a > b) ); println("a < b = " + (a < b) ); println("b >= a = " + (b >= a) ); println("b <= a = " + (b <= a) ); } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
Logische Operatoren
Die folgende Tabelle listet die Scala unterstützt logische Operatoren.
Eine Variable angenommen als 1 ist, B 0:
Die Betreiber | Beschreibung | Beispiele |
---|---|---|
&& | Logik und | (A && B) Operationsergebnis ist falsch |
|| | Logisch oder | (A || B) Operationsergebnis ist wahr |
! | Logisches NICHT | ! (A && B) Operationsergebnis ist wahr |
Beispiele
object Test { def main(args: Array[String]) { var a = true; var b = false; println("a && b = " + (a&&b) ); println("a || b = " + (a||b) ); println("!(a && b) = " + !(a && b) ); } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test a && b = false a || b = true !(a && b) = true
Bitweise Operatoren
Bit-Operatoren Bit verwendet zu betreiben, ~, &, |, ^ wurden negiert und das Bit oder Bit und bitweise XOR-Verknüpfung mit den folgenden Tabelle Beispiele:
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 |
Wenn A = 60 und B = 13; zwei Variablen entsprechend binär ist:
A = 0011 1100 B = 0000 1101 -------位运算---------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011
Die Scala Bitwise Regel wie folgt:
Die Betreiber | Beschreibung | Beispiele |
---|---|---|
& | Bitweise AND-Operator | (A & B) Ausgabe 12, binäre Erklärung: 0000 1100 |
| | Bitweise OR-Operator | (A | b) Ausgabe 61, binäre Erklärung: 00111101 |
^ | Bitweise Exklusiv-ODER-Operator | (A ^ b) die Ausgabe von 49, binäre Erklärung: 00110001 |
~ | Bitweise Operatoren | (~ A) -61-Ausgang, binäre Erklärung: 1100 0011 in symbolischer Form binäre Zahl ergänzen. |
<< | Linke Mobilfunkbetreiber | ein << 2 Ausgänge 240 Binäre Interpretation: 11110000 |
>> | Rechts Mobile Operators | a >> 2 Ausgang 15, binäre Erklärung: 0000 1111 |
>>> | Unsigned Verschiebung nach rechts | A >>> 2 Ausgänge 15 binäre Erklärung: 0000 1111 |
Beispiele
object Test { def main(args: Array[String]) { var a = 60; /* 60 = 0011 1100 */ var b = 13; /* 13 = 0000 1101 */ var c = 0; c = a & b; /* 12 = 0000 1100 */ println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ println("a ^ b = " + c ); c = ~a; /* -61 = 1100 0011 */ println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ println("a << 2 = " + c ); c = a >> 2; /* 215 = 1111 */ println("a >> 2 = " + c ); c = a >>> 2; /* 215 = 0000 1111 */ println("a >>> 2 = " + c ); } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15
Zuweisungsoperatoren
Die folgende Liste zeigt die Scala Sprachunterstützung Zuweisungsoperator:
Die Betreiber | Beschreibung | Beispiele |
---|---|---|
= | Einfache Zuweisungsoperator, gibt den rechten Operanden auf der linken Operanden zugewiesen. | C = A + B A + B Operationsergebnis wird zu C zugewiesen |
+ = | Hinzufügen nach der Zuweisung, die linken und rechten Seite des Operanden vor dem linken Operand zugewiesen hinzugefügt wird. | C + = A entspricht C = C + A |
- = | die linken und rechten Operanden auf beiden Seiten des linken Operanden nach Subtraktionszuweisung nach Subtraktion zugewiesen. | C - = A entspricht C = C - A |
* = | Dann die Zuordnung multipliziert, die linken und rechten Seite der Operanden vor der Zuweisung an den linken Operanden multipliziert. | C * = A entspricht C = C * A |
/ = | Unterteilt nach der Zuweisung, die linken und rechten Seite des Teilungsoperanden nach der Abtretung der linken Operanden. | C / A = entspricht C = C / A |
% = | Rest nach der Zuweisung, die linken und rechten Seite des restlichen Operanden nach der Abtretung des linken Operanden. | C% = A entspricht C = C% A |
<< = | Bitweise links nach der Abtretung | C << = 2 entspricht C = C << 2 |
>> = | Bitwise direkt nach der Abtretung | C >> = 2 entspricht C = C >> 2 |
& = | Bitweise AND-Zuweisung nach der Operation | C & = 2 entspricht C = C & 2 |
^ = | Bitweise Exklusiv-ODER-Operator und dann zugewiesen | C ^ = 2 entspricht C = C ^ 2 |
| = | Bitweise OR-Zuweisung nach | C | = 2 entspricht C = C | 2 |
Beispiele
object Test { def main(args: Array[String]) { var a = 10; var b = 20; var c = 0; c = a + b; println("c = a + b = " + c ); c += a ; println("c += a = " + c ); c -= a ; println("c -= a = " + c ); c *= a ; println("c *= a = " + c ); a = 10; c = 15; c /= a ; println("c /= a = " + c ); a = 10; c = 15; c %= a ; println("c %= a = " + c ); c <<= 2 ; println("c <<= 2 = " + c ); c >>= 2 ; println("c >>= 2 = " + c ); c >>= 2 ; println("c >>= a = " + c ); c &= a ; println("c &= 2 = " + c ); c ^= a ; println("c ^= a = " + c ); c |= a ; println("c |= a = " + c ); } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test c = a + b = 30 c += a = 40 c -= a = 30 c *= a = 300 c /= a = 1 c %= a = 5 c <<= 2 = 20 c >>= 2 = 5 c >>= a = 1 c &= 2 = 0 c ^= a = 10 c |= a = 10
Operator Präzedenz
In einem Ausdruck kann eine Vielzahl von verschiedenen Operatoren enthalten, die mit unterschiedlichen Datentypen von Datenobjekten verbindet; da die Expression einer Vielzahl von Operationen aufweist, eine andere Reihenfolge der Operationen unterschiedliche Ergebnisse sogar fehlerhafte Betriebsfehler aufweisen kann, weil, wenn wenn ein Ausdruck, der eine Vielzahl von Operationen, nach einer bestimmten Reihenfolge enthalten, müssen kombiniert werden, um die Rationalität und die Richtigkeit der Ergebnisse, die Einzigartigkeit der Betrieb zu gewährleisten.
Priorität in der Reihenfolge von oben nach unten absteigend, die Spitze hat die höchste Priorität, der Komma-Operator hat die niedrigste Priorität.
Das gleiche Prioritätsstufe, nach der Bindungsreihenfolge der Berechnung. Die meisten Operationen von links nach rechts berechnet werden, sind nur drei Prioritäten von rechts nach links Kombination, sie unäre Operatoren, Vergleichsoperatoren, Zuweisungsoperatoren sind.
Die grundlegenden Prioritäten müssen sich daran erinnern:
- Optimale Zeiger, einstellige als binäre Operatoren. Als Zeichen.
- Erste Multiplikation und Division (Modul) nach Abzug.
- Erste arithmetische Schiebeoperation nach dem letzten Bit-Computing. Bitte achten Sie besonders auf: << 1 2 & 3 + 7 entspricht (1 << (3 + 2)) und 7
- Endgültige Berechnung Logikoperation
Betreiber Typ | Die Betreiber | Verbindliche Richtung |
---|---|---|
Expression Evaluation | () []. Expr ++ expr-- | Von links nach rechts |
unärer Operator | * & + - ~ ++ Expr --expr * /% + - >> << <> <=> = ==! = | Von rechts nach links |
Bitweise Operatoren | & ^ | && || | Von links nach rechts |
Ternary Operator | ?: | Von rechts nach links |
Zuweisungsoperatoren | = + = - = * = / =% = >> = << = & = ^ = | = | Von rechts nach links |
Komma | . | Von links nach rechts |