F # - Prioridad de operadores
La siguiente tabla muestra el orden de prioridad de los operadores y otras palabras clave de expresión en el lenguaje F #, desde la prioridad más baja hasta la más alta.
Operador | Asociatividad |
---|---|
como | Derecha |
cuando | Derecha |
| (tubo) | Izquierda |
; | Derecha |
dejar | No asociativo |
función, diversión, emparejar, probar | No asociativo |
Si | No asociativo |
→ | Derecha |
: = | Derecha |
, | No asociativo |
o, || | Izquierda |
&, && | Izquierda |
<op,> op, =, | op y op | Izquierda |
&&&, |||, ^^^, ~~~, <<<, >>> | Izquierda |
^ op | Derecha |
:: | Derecha |
:?>,:? | No asociativo |
- op, + op, (binario) | Izquierda |
* op, / op,% op | Izquierda |
** op | Derecha |
fx (aplicación de función) | Izquierda |
| (coincidencia de patrones) | Derecha |
operadores de prefijo (+ op, -op,%, %%, &, &&,! op, ~ op) | Izquierda |
. | Izquierda |
f (x) | Izquierda |
f <tipos> | Izquierda |
Ejemplo
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
Cuando compila y ejecuta el programa, produce el siguiente resultado:
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