Latest web development tutorials

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