F # - Operatori
Un operatore è un simbolo che dice al compilatore di eseguire manipolazioni matematiche o logiche specifiche. F # è ricco di operatori incorporati e fornisce i seguenti tipi di operatori:
- Operatori aritmetici
- Operatori di confronto
- Operatori booleani
- Operatori bit per bit
Operatori aritmetici
La tabella seguente mostra tutti gli operatori aritmetici supportati dal linguaggio F #. Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -
Mostra esempio
| Operatore | Descrizione | Esempio |
|---|---|---|
| + | Aggiunge due operandi | A + B darà 30 |
| - | Sottrae il secondo operando dal primo | A - B darà -10 |
| * | Moltiplica entrambi gli operandi | A * B darà 200 |
| / | Divide il numeratore per il de-numeratore | B / A darà 2 |
| % | Operatore modulo e resto di dopo una divisione intera | B% A darà 0 |
| ** | Operatore di esponenziazione, eleva un operando alla potenza di un altro | B ** A darà 20 10 |
Operatori di confronto
La tabella seguente mostra tutti gli operatori di confronto supportati dal linguaggio F #. Questi operatori di confronto binario sono disponibili per i tipi a virgola mobile e integrale. Questi operatori restituiscono valori di tipo bool.
Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -
Mostra esempio
| Operatore | Descrizione | Esempio |
|---|---|---|
| = | Controlla se i valori di due operandi sono uguali o meno, in caso affermativo la condizione diventa vera. | (A == B) non è vero. |
| <> | Controlla se i valori di due operandi sono uguali o meno, se i valori non sono uguali la condizione diventa vera. | (A <> B) è vero. |
| > | Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A> B) non è vero. |
| < | Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A <B) è vero. |
| > = | Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A> = B) non è vero. |
| <= | Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A <= B) è vero. |
Operatori booleani
La tabella seguente mostra tutti gli operatori booleani supportati dal linguaggio F #. Supponiamo che la variabile A valgatrue e la variabile B vale false, poi -
Mostra esempio
| Operatore | Descrizione | Esempio |
|---|---|---|
| && | Chiamato operatore AND booleano. Se entrambi gli operandi sono diversi da zero, la condizione diventa vera. | (A && B) è falso. |
| || | Chiamato operatore OR booleano. Se uno dei due operandi è diverso da zero, la condizione diventa vera. | (A || B) è vero. |
| non | Chiamato operatore booleano NOT. Utilizzare per invertire lo stato logico del proprio operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa. | non (A && B) è vero. |
Operatori bit per bit
Gli operatori bit per bit lavorano sui bit ed eseguono operazioni bit per bit. Le tabelle di verità per &&& (AND bit per bit), ||| (OR bit per bit) e ^^^ (OR esclusivo bit per bit) sono i seguenti:
Mostra esempio
| p | q | p &&& q | p ||| q | p ^^^ q |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Assumiamo se A = 60; e B = 13; ora in formato binario saranno i seguenti -
A = 0011 1100
B = 0000 1101
-----------------A &&& B = 0000 1100
A ||| B = 0011 1101
A ^^^ B = 0011 0001
~~~ A = 1100 0011
Gli operatori bit per bit supportati dal linguaggio F # sono elencati nella tabella seguente. Supponiamo che la variabile A contenga 60 e la variabile B ne contenga 13, quindi -
| Operatore | Descrizione | Esempio |
|---|---|---|
| &&& | L'operatore AND binario copia un po 'nel risultato se esiste in entrambi gli operandi. | (A &&& B) darà 12, che è 0000 1100 |
| ||| | L'operatore OR binario copia un bit se esiste in uno degli operandi. | (A ||| B) darà 61, che è 0011 1101 |
| ^^^ | L'operatore XOR binario copia il bit se è impostato in un operando ma non in entrambi. | (A ^^^ B) darà 49, che è 0011 0001 |
| ~~~ | Binary Ones Complement Operator è unario e ha l'effetto di "ribaltare" i bit. | (~~~ A) darà -61, che è 1100 0011 in forma di complemento a 2. |
| <<< | Operatore binario di spostamento sinistro. Il valore dell'operando sinistro viene spostato a sinistra del numero di bit specificato dall'operando destro. | Un <<< 2 darà 240 che è 1111 0000 |
| >>> | Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro. | Un >>> 2 darà 15 che è 0000 1111 |
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 più bassa alla precedenza più alta.
Mostra esempio
| 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 |
| | (corrispondenza del modello) | Destra |
| operatori di prefisso (+ op, -op,%, %%, &, &&,! op, ~ op) | Sinistra |
| . | Sinistra |
| f (x) | Sinistra |
| f <tipi> | Sinistra |