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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow