Scala Language
Betreiber in Scala
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.