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.