Scala Language
Exploitanten in Scala
Zoeken…
Ingebouwde operators
Scala heeft de volgende ingebouwde operators (methoden / taalelementen met vooraf gedefinieerde voorrangsregels):
Type | Symbool | Voorbeeld |
---|---|---|
Rekenkundige operatoren | + - * / % | a + b |
Relationele operatoren | == != > < >= <= | a > b |
Logische operatoren | && & || | ! | a && b |
Bit-wijze operatoren | & | ^ ~ << >> >>> | a & b , ~a , a >>> b |
Opdrachtexploitanten | = += -= *= /= %= <<= >>= &= ^= | = | a += b |
Scala-operators hebben dezelfde betekenis als in Java
Opmerking : methoden die eindigen op :
binden aan de rechterkant (en rechts associatief), zodat de aanroep met list.::(value)
kan worden geschreven als value :: list
met syntaxis van de operator. ( 1 :: 2 :: 3 :: Nil
is hetzelfde als 1 :: (2 :: (3 :: Nil))
)
Overbelasting operator
In Scala kunt u uw eigen operatoren definiëren:
class Team {
def +(member: Person) = ...
}
Met bovenstaande definieert u het als:
ITTeam + Jack
of
ITTeam.+(Jack)
Om unaire operatoren te definiëren, kunt u het unary_
door unary_
. Bijv. unary_!
class MyBigInt {
def unary_! = ...
}
var a: MyBigInt = new MyBigInt
var b = !a
Voorrang operator
Categorie | operator | associativiteit |
---|---|---|
postfix | () [] | Van links naar rechts |
unaire | ! ~ | Rechts naar links |
multiplicatieve | * / % | Van links naar rechts |
toevoeging | + - | Van links naar rechts |
Verschuiving | >> >>> << | Van links naar rechts |
relationele | > >= < <= | Van links naar rechts |
Gelijkheid | == != | Van links naar rechts |
Bitwise en | & | Van links naar rechts |
Bitwise xor | ^ | Van links naar rechts |
Bitwise of | | | Van links naar rechts |
Logisch en | && | Van links naar rechts |
Logisch of | || | Van links naar rechts |
toewijzing | = += -= *= /= %= >>= <<= &= ^= | = | Rechts naar links |
Komma | , | Van links naar rechts |
Programmering in Scala geeft het volgende overzicht op basis van het eerste teken in de operator. Bijv. >
Is het eerste teken in de operator >>>
:
operator |
---|
(alle andere speciale tekens) |
* / % |
+ - |
: |
= ! |
< > |
& |
^ |
| |
(alle letters) |
(alle toewijzingsoperators) |
De enige uitzondering op deze regel betreft toewijzingsoperators , bijv. +=
, *=
, Enz. Als een operator eindigt met een gelijk teken (=) en geen van de vergelijkingsoperators is <=
, >=
, ==
of !=
, dan is de prioriteit van de operator hetzelfde als eenvoudige toewijzing. Met andere woorden, lager dan die van elke andere operator.