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
