Scala Language
Operatori in Scala
Ricerca…
Operatori integrati
Scala ha i seguenti operatori integrati (metodi / elementi di linguaggio con regole di precedenza predefinite):
genere | Simbolo | Esempio |
---|---|---|
Operatori aritmetici | + - * / % | a + b |
Operatori relazionali | == != > < >= <= | a > b |
Operatori logici | && & || | ! | a && b |
Operatori bit-saggio | & | ^ ~ << >> >>> | a & b , ~a , a >>> b |
Operatori di assegnazione | = += -= *= /= %= <<= >>= &= ^= | = | a += b |
Gli operatori di Scala hanno lo stesso significato di Java
Nota : metodi che terminano con :
bind a destra (e associativo a destra), quindi la chiamata con list.::(value)
può essere scritta come value :: list
con sintassi dell'operatore. ( 1 :: 2 :: 3 :: Nil
è uguale a 1 :: (2 :: (3 :: Nil))
)
Sovraccarico dell'operatore
In Scala puoi definire i tuoi operatori:
class Team {
def +(member: Person) = ...
}
Con quanto sopra definito puoi usarlo come:
ITTeam + Jack
o
ITTeam.+(Jack)
Per definire gli operatori unari è possibile unary_
con unary_
. Ad esempio unary_!
class MyBigInt {
def unary_! = ...
}
var a: MyBigInt = new MyBigInt
var b = !a
Precedenza dell'operatore
Categoria | Operatore | Associatività |
---|---|---|
Postfix | () [] | Da sinistra a destra |
unario | ! ~ | Da destra a sinistra |
moltiplicativo | * / % | Da sinistra a destra |
Additivo | + - | Da sinistra a destra |
Cambio | >> >>> << | Da sinistra a destra |
relazionale | > >= < <= | Da sinistra a destra |
Uguaglianza | == != | Da sinistra a destra |
Bitwise e | & | Da sinistra a destra |
Xor bit a bit | ^ | Da sinistra a destra |
Bitwise o | | | Da sinistra a destra |
Logico e | && | Da sinistra a destra |
Logico o | || | Da sinistra a destra |
assegnazione | = += -= *= /= %= >>= <<= &= ^= | = | Da destra a sinistra |
Virgola | , | Da sinistra a destra |
La programmazione in Scala fornisce il seguente schema basato sul 1 ° carattere nell'operatore. Es. >
È il 1 ° carattere nell'operatore >>>
:
Operatore |
---|
(tutti gli altri caratteri speciali) |
* / % |
+ - |
: |
= ! |
< > |
& |
^ |
| |
(tutte le lettere) |
(tutti gli operatori di assegnazione) |
L'unica eccezione a questa regola riguarda gli operatori di assegnazione , ad esempio +=
, *=
, ecc. Se un operatore termina con un carattere uguale (=) e non è uno degli operatori di confronto <=
, >=
, ==
o !=
, quindi la precedenza dell'operatore è la stessa del semplice compito. In altre parole, inferiore a quello di qualsiasi altro operatore.