F # - Precedência de operadores
A tabela a seguir mostra a ordem de precedência dos operadores e outras palavras-chave de expressão na linguagem F #, da precedência mais baixa para a precedência mais alta.
Operador | Associatividade |
---|---|
Como | Certo |
quando | Certo |
| (tubo) | Esquerda |
; | Certo |
deixei | Não associativo |
função, diversão, combinar, tentar | Não associativo |
E se | Não associativo |
→ | Certo |
: = | Certo |
, | Não associativo |
ou, || | Esquerda |
&, && | Esquerda |
<op,> op, =, | op, & op | Esquerda |
&&&, |||, ^^^, ~~~, <<<, >>> | Esquerda |
^ op | Certo |
:: | Certo |
:?>,:? | Não associativo |
- op, + op, (binário) | Esquerda |
* op, / op,% op | Esquerda |
** op | Certo |
fx (aplicativo de função) | Esquerda |
| (correspondência de padrão) | Certo |
operadores de prefixo (+ op, -op,%, %%, &, &&,! op, ~ op) | Esquerda |
. | Esquerda |
f (x) | Esquerda |
f <tipos> | Esquerda |
Exemplo
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 você compila e executa o programa, ele produz a seguinte saída -
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