F # - Precedenza degli operatori
La tabella seguente mostra l'ordine di precedenza degli operatori e di altre parole chiave di espressione nel linguaggio F #, dalla precedenza minima alla precedenza più alta.
Operatore | Associatività |
---|---|
come | Destra |
quando | Destra |
| (tubo) | Sinistra |
; | Destra |
permettere | Non associativo |
funzione, divertimento, corrispondenza, prova | Non associativo |
Se | Non associativo |
→ | Destra |
: = | Destra |
, | Non associativo |
o, || | Sinistra |
&, && | Sinistra |
<op,> op, =, | op, & op | Sinistra |
&&&, |||, ^^^, ~~~, <<<, >>> | Sinistra |
^ op | Destra |
:: | Destra |
:?>,:? | Non associativo |
- op, + op, (binario) | Sinistra |
* op, / op,% op | Sinistra |
** operazione | Destra |
fx (applicazione funzione) | Sinistra |
| (pattern match) | Destra |
operatori di prefisso (+ op, -op,%, %%, &, &&,! op, ~ op) | Sinistra |
. | Sinistra |
f (x) | Sinistra |
f <tipi> | Sinistra |
Esempio
let a : int32 = 20
let b : int32 = 10
let c : int32 = 15
let d : int32 = 5
let mutable e : int32 = 0
e <- (a + b) * c / d // ( 30 * 15 ) / 5
printfn "Value of (a + b) * c / d is : %d" e
e <- ((a + b) * c) / d // (30 * 15 ) / 5
printfn "Value of ((a + b) * c) / d is : %d" e
e <- (a + b) * (c / d) // (30) * (15/5)
printfn "Value of (a + b) * (c / d) is : %d" e
e <- a + (b * c) / d // 20 + (150/5)
printfn "Value of a + (b * c) / d is : %d" e
Quando compili ed esegui il programma, restituisce il seguente output:
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50