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 |