Suche…


Eingebaute Operatoren

Scala verfügt über die folgenden integrierten Operatoren (Methoden / Sprachelemente mit vordefinierten Vorrangregeln):

Art Symbol Beispiel
Rechenzeichen + - * / % a + b
Beziehungsoperatoren == != > < >= <= a > b
Logische Operatoren && & || | ! a && b
Bitweise Operatoren & | ^ ~ << >> >>> a & b , ~a , a >>> b
Zuweisungsoperatoren = += -= *= /= %= <<= >>= &= ^= | = a += b

Scala-Operatoren haben dieselbe Bedeutung wie in Java

Hinweis : Methoden mit der Endung : bindet nach rechts (und nach rechts assoziativ), sodass der Aufruf mit list.::(value) als value :: list mit Operatorsyntax geschrieben werden kann. ( 1 :: 2 :: 3 :: Nil ist das Gleiche wie 1 :: (2 :: (3 :: Nil)) )

Überladung des Bedieners

In Scala können Sie Ihre eigenen Operatoren definieren:

class Team {
   def +(member: Person) = ...
}

Mit den obigen Definitionen können Sie es wie folgt verwenden:

ITTeam + Jack

oder

ITTeam.+(Jack)

Um unäre Operatoren zu definieren, können Sie unary_ . ZB unary_!

class MyBigInt {
   def unary_! = ...
}

var a: MyBigInt = new MyBigInt
var b = !a

Vorrang des Bedieners

Kategorie Operator Assoziativität
Postfix () [] Links nach rechts
Unary ! ~ Rechts nach links
Multiplikativ * / % Links nach rechts
Zusatzstoff + - Links nach rechts
Verschiebung >> >>> << Links nach rechts
Relational > >= < <= Links nach rechts
Gleichberechtigung == != Links nach rechts
Bitweise und & Links nach rechts
Bitweises xor ^ Links nach rechts
Bitweise oder | Links nach rechts
Logisch und && Links nach rechts
Logisch oder || Links nach rechts
Zuordnung = += -= *= /= %= >>= <<= &= ^= | = Rechts nach links
Komma , Links nach rechts

Die Programmierung in Scala gibt die folgende Gliederung basierend auf dem 1. Zeichen des Operators an. ZB > ist das 1. Zeichen im Operator >>> :

Operator
(alle anderen Sonderzeichen)
* / %
+ -
:
= !
< >
&
^
|
(alle Buchstaben)
(alle Zuweisungsoperatoren)

Die einzige Ausnahme von dieser Regel betrifft Zuweisungsoperatoren , z. B. += , *= usw. Wenn ein Operator mit einem Gleichheitszeichen (=) endet und keiner der Vergleichsoperatoren ist <= , >= , == bzw. != der Vorrang des Operators ist dann dasselbe wie eine einfache Zuweisung. Mit anderen Worten, niedriger als bei jedem anderen Bediener.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow