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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow