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