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.