Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo include tabelle che descrivono i simboli e gli operatori usati in F# e fornisce una breve descrizione di ognuno di essi. Alcuni simboli e operatori hanno due o più voci quando vengono usate in più ruoli.
Simboli di commento, direttiva del compilatore e attributi
Nella tabella seguente vengono descritti i simboli correlati a commenti, direttive e attributi del compilatore.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
(*...*) |
Delimita un commento che può estendersi su più righe. | |
// |
Indica l'inizio di un commento a riga singola. | |
/// |
Documentazione XML | Indica un commento XML. |
# |
Direttive del compilatore | Prefissi una direttiva del preprocessore o del compilatore. |
[<...>] |
Attributi | Delimita un attributo. |
Simboli di stringa e identificatore
Nella tabella seguente vengono descritti i simboli correlati alle stringhe.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
" |
Stringhe | Delimita una stringa di testo. |
@" |
Stringhe | Avvia una stringa di testo verbatim, che può includere barre rovesciata e altri caratteri. |
""" |
Stringhe | Delimita una stringa di testo con virgolette triple, che può includere barre rovesciate, virgolette doppie e altri caratteri. |
$" |
Stringhe interpolate | Avvia una stringa interpolata. |
' |
valori letterali | Delimita un valore letterale a carattere singolo. |
``...`` |
Delimita un identificatore che altrimenti non sarebbe un identificatore legale, ad esempio una parola chiave del linguaggio. | |
\ |
Stringhe | Escape del carattere successivo; usato nei valori letterali carattere e stringa. |
Operatori aritmetici
Nella tabella seguente vengono descritti gli operatori aritmetici.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
+ |
Operatori aritmetici |
|
- |
Operatori aritmetici |
|
* |
Operatori aritmetici Tuple Unità di misura |
|
/ |
Operatori aritmetici Unità di misura |
|
% |
Operatori aritmetici | Calcola il resto intero. |
** |
Operatori aritmetici | Calcola l'operazione di exponentiation (x ** y indica x la potenza di y). |
Operatori di confronto
Nella tabella seguente vengono descritti gli operatori di confronto.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
< |
Operatori aritmetici | Calcola l'operazione minore di. |
<> |
Operatori aritmetici | Restituisce true se il lato sinistro non è uguale al lato destro; in caso contrario, restituisce false. |
<= |
Operatori aritmetici | Restituisce true se il lato sinistro è minore o uguale al lato destro; in caso contrario, restituisce false. |
= |
Operatori aritmetici | Restituisce true se il lato sinistro è uguale al lato destro; in caso contrario, restituisce false. |
> |
Operatori aritmetici | Restituisce true se il lato sinistro è maggiore del lato destro; in caso contrario, restituisce false. |
>= |
Operatori aritmetici | Restituisce true se il lato sinistro è maggiore o uguale al lato destro; in caso contrario, restituisce false. |
Operatori booleani
Nella tabella seguente vengono descritti i simboli degli operatori aritmetici e booleani.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
&& |
operatori booleani | Calcola l'operazione AND booleana. |
|| |
operatori booleani | Calcola l'operazione OR booleana. |
Operatori bit per bit
Nella tabella seguente vengono descritti gli operatori bit per bit.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
&&& |
operatori bit per bit | Calcola l'operazione AND bit per bit. |
<<< |
operatori bit per bit | Sposta i bit nella quantità sul lato sinistro a sinistra in base al numero di bit specificati sul lato destro. |
>>> |
operatori bit per bit | Sposta i bit nella quantità sul lato sinistro a destra in base al numero di posizioni specificate sul lato destro. |
^^^ |
operatori bit per bit | Calcola l'operazione OR esclusivo bit per bit. |
||| |
operatori bit per bit | Calcola l'operazione OR bit per bit. |
~~~ |
operatori bit per bit | Calcola l'operazione NOT bit per bit. |
Simboli e operatori di funzione
Nella tabella seguente vengono descritti gli operatori e i simboli correlati alle funzioni.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
-> |
Funzioni | Nelle espressioni di funzione separa il modello di input dall'espressione di output. |
|> |
Funzioni | Passa il risultato del lato sinistro alla funzione sul lato destro (operatore pipe in avanti). |
||> |
( ||> )<'T1,'T2,'U> Funzione | Passa la tupla di due argomenti a sinistra alla funzione sul lato destro. |
|||> |
( |||> )<'T1,'T2,'T3,'U> Funzione | Passa la tupla di tre argomenti a sinistra alla funzione sul lato destro. |
>> |
Funzioni | Compone due funzioni (operatore di composizione in avanti). |
<< |
Funzioni | Compone due funzioni in ordine inverso; il secondo viene eseguito per primo (operatore di composizione all'indietro). |
<| |
Funzioni | Passa il risultato dell'espressione sul lato destro alla funzione sul lato sinistro (operatore pipe indietro). |
<|| |
( <|| )<' T1,'T2,'U> Funzione | Passa la tupla di due argomenti sul lato destro alla funzione sul lato sinistro. |
<||| |
( <||| )<' T1,'T2,'T3,'U> Funzione | Passa la tupla di tre argomenti sul lato destro alla funzione sul lato sinistro. |
Simboli e operatori di tipo
Nella tabella seguente vengono descritti i simboli correlati alle annotazioni di tipo e ai test di tipo.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
-> |
Funzioni | Nei tipi di funzione delimita gli argomenti e i valori restituiti, restituisce anche un risultato nelle espressioni di sequenza. |
: |
Funzioni | In un'annotazione di tipo separa un parametro o un nome membro dal relativo tipo. |
:> |
Cast e conversioni | Converte un tipo in un tipo superiore nella gerarchia. |
:? |
espressioni di corrispondenza | Restituisce se il valore corrisponde al tipo specificato ,incluso se è un sottotipo; in caso contrario, restituisce truefalse (operatore test di tipo). |
:?> |
Cast e conversioni | Converte un tipo in un tipo inferiore nella gerarchia. |
# |
Tipi flessibili | Se usato con un tipo, indica un tipo flessibile, che fa riferimento a un tipo o a uno dei relativi tipi derivati. |
' |
Generalizzazione automatica | Indica un parametro di tipo generico. |
<...> |
Generalizzazione automatica | Delimita i parametri di tipo. |
^ |
Parametri di tipo risolti in modo statico Stringhe |
|
{} |
Classe o record | Se utilizzata con la type parola chiave , delimita una classe o un record. Il tipo è una classe quando i membri vengono dichiarati o viene usata la class parola chiave . In caso contrario, è un record. |
{||} |
Record anonimo | Indica un record anonimo |
Simboli usati nelle espressioni di ricerca e sezione dei membri
Nella tabella seguente vengono descritti i simboli aggiuntivi utilizzati nelle espressioni di ricerca e sezione dei membri.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
. |
Members | Accede a un membro e separa i singoli nomi in un nome completo. |
[...] o .[...] |
matrici Proprietà indicizzate Espressioni di sezione |
Indici in una matrice, una stringa o una raccolta oppure accetta una sezione di una raccolta. |
Simboli usati in tupla, elenco, matrice, espressioni di unità e modelli
Nella tabella seguente vengono descritti i simboli correlati a tuple, elenchi, valori di unità e matrici.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
( ) |
Tipo di unità | Rappresenta il singolo valore del tipo di unità. |
, |
Tuple | Separa gli elementi di una tupla o parametri di tipo. |
:: |
Liste espressioni di corrispondenza |
|
@ |
Liste | Concatena due elenchi. |
[...] |
Liste | Delimita gli elementi di un elenco. |
[|...|] |
matrici | Delimita gli elementi di una matrice. |
Simboli usati nelle espressioni imperative
Nella tabella seguente vengono descritti i simboli aggiuntivi utilizzati nelle espressioni.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
<- |
Valori | Assegna un valore a una variabile. |
; |
Sintassi dettagliata |
Separa le espressioni (usate principalmente nella sintassi dettagliata). Separa inoltre gli elementi di un elenco o di campi di un record. |
Simboli aggiuntivi usati nelle sequenze e nelle espressioni di calcolo
Nella tabella seguente vengono descritti i simboli aggiuntivi usati nelle sequenze e nelle espressioni di calcolo.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
-> |
Sequenze | Restituisce un'espressione (nelle espressioni di sequenza); equivalente alle do yield parole chiave. |
! |
Espressioni di calcolo | Dopo una parola chiave, indica una versione modificata del comportamento della parola chiave come controllata da un'espressione di calcolo. |
Simboli aggiuntivi usati nei modelli di corrispondenza
Nella tabella seguente vengono descritti i simboli correlati ai criteri di ricerca.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
-> |
espressioni di corrispondenza | Utilizzato nelle espressioni di corrispondenza. |
& |
Abbinamento di Modelli |
|
_ |
espressioni di corrispondenza Generics |
|
| |
espressioni di corrispondenza | Delimita i singoli case di corrispondenza, i singoli casi di unione discriminati e i valori di enumerazione. |
Simboli aggiuntivi usati nelle dichiarazioni
Nella tabella seguente vengono descritti i simboli correlati alle dichiarazioni.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
(|...|) |
Modelli Attivi | Delimita un nome di criterio attivo. Chiamata anche clip banana. |
? |
Parametri e argomenti | Specifica un argomento facoltativo. |
~~ |
Sovraccarico degli operatori | Utilizzato per dichiarare un overload per l'operatore di negazione unario. |
~- |
Sovraccarico degli operatori | Utilizzato per dichiarare un overload per l'operatore meno unario. |
~+ |
Sovraccarico degli operatori | Usato per dichiarare un overload per l'operatore più unario. |
Simboli aggiuntivi usati tra virgolette
Nella tabella seguente vengono descritti i simboli correlati alle virgolette di codice.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
<@...@> |
Virgolette di codice | Delimita una virgoletta di codice tipizzata. |
<@@...@@> |
Virgolette di codice | Delimita un'offerta di codice non tipizzato. |
% |
Virgolette di codice | Utilizzato per lo splicing delle espressioni in virgolette di codice tipizzato. |
%% |
Virgolette di codice | Utilizzato per lo splicing delle espressioni in virgolette di codice non tipizzato. |
Operatori di ricerca dinamici
Nella tabella seguente vengono descritti i simboli aggiuntivi usati nelle espressioni di ricerca dinamica. In genere non vengono usate nella programmazione F# di routine e non vengono fornite implementazioni di questi operatori nella libreria principale F#.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
? |
Usato come operatore per le chiamate di metodo e proprietà dinamiche. | |
? ... <- ... |
Usato come operatore per impostare le proprietà dinamiche. |
Operatori nullable nelle query
Gli operatori nullable sono definiti per l'uso nelle espressioni di query. La tabella seguente illustra questi operatori.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
%? |
Operatori nullable | Calcola il resto intero, quando il lato destro è un tipo nullable. |
*? |
Operatori nullable | Moltiplica i lati sinistro e destro, quando il lato destro è un tipo nullable. |
+? |
Operatori nullable | Aggiunge i lati sinistro e destro, quando il lato destro è un tipo nullable. |
-? |
Operatori nullable | Sottrae il lato destro dal lato sinistro, quando il lato destro è un tipo nullable. |
/? |
Operatori nullable | Divide il lato sinistro a destra, quando il lato destro è un tipo nullable. |
<? |
Operatori nullable | Calcola l'operazione minore di , quando il lato destro è un tipo nullable. |
<>? |
Operatori nullable | Calcola l'operazione "non uguale" quando il lato destro è un tipo nullable. |
<=? |
Operatori nullable | Calcola l'operazione "minore o uguale a" quando il lato destro è un tipo nullable. |
=? |
Operatori nullable | Calcola l'operazione "uguale" quando il lato destro è un tipo nullable. |
>? |
Operatori nullable | Calcola l'operazione "maggiore di" quando il lato destro è un tipo nullable. |
>=? |
Operatori nullable | Calcola l'operazione "maggiore o uguale a" quando il lato destro è un tipo nullable. |
?>=
?<=, ?>, , ?<, ?=?<>, ?+, ?-, , ?*?/ |
Operatori nullable | Equivalente agli operatori corrispondenti senza l'oggetto ? prefisso, dove un tipo nullable si trova a sinistra. |
>=?
<=?, >?, , <?, =?<>?, +?, -?, , *?/? |
Operatori nullable | Equivalente agli operatori corrispondenti senza l'oggetto ? suffisso, dove un tipo nullable si trova a destra. |
?>=?
?<=?, ?>?, , ?<?, ?=??<>?, ?+?, ?-?, , ?*??/? |
Operatori nullable | Equivalente agli operatori corrispondenti senza i punti interrogativi circostanti, in cui entrambi i lati sono tipi nullable. |
Operatori di cella di riferimento (deprecati)
Nella tabella seguente vengono descritti i simboli correlati alle celle di riferimento. L'uso di questi operatori genera messaggi di avviso a partire da F# 6. Per altre informazioni, vedere Riferimenti ai messaggi di consulenza sulle operazioni di cella.
| Simbolo o operatore | Collegamenti | Descrizione |
|---|---|---|
! |
Celle di riferimento | Dereferenzia una cella di riferimento. |
:= |
Celle di riferimento | Assegna un valore a una cella di riferimento. |
Precedenza dell'operatore
Nella tabella seguente viene illustrato l'ordine di precedenza degli operatori e altre parole chiave di espressione in F#, in ordine dalla precedenza più bassa alla precedenza più alta. È anche elencata l'associatività, se applicabile.
| Operatore | Associatività |
|---|---|
as |
Giusto |
when |
Giusto |
| (pipe) |
Sinistra |
; |
Giusto |
let |
Nonassociative |
function, fun, matchtry |
Nonassociative |
if |
Nonassociative |
not |
Giusto |
-> |
Giusto |
:= |
Giusto |
, |
Nonassociative |
or, || |
Sinistra |
&, && |
Sinistra |
:>, :?> |
Giusto |
<
op, >op, =|op, op, && , ,$(incluso <<<, >>>|||, , &&&) |
Sinistra |
^
Op(incluso ^^^) |
Giusto |
:: |
Giusto |
:? |
Non associativo |
-
op, +op |
Si applica agli utilizzi infissi di questi simboli |
*
op, /op, %op |
Sinistra |
**
Op |
Giusto |
f x (applicazione per le funzioni)(incluso lazy x, assert x) |
Sinistra |
| (corrispondenza dei criteri) |
Giusto |
operatori di prefisso (+op, -op, %, %%, &, &&!op, ~op) |
Sinistra |
. |
Sinistra |
f(x) |
Sinistra |
f<
Tipi> |
Sinistra |
F# supporta l'overload degli operatori personalizzati. Ciò significa che è possibile definire gli operatori personalizzati. Nella tabella precedente , op può essere qualsiasi sequenza valida (possibilmente vuota) di caratteri operatore, predefinita o definita dall'utente. È quindi possibile usare questa tabella per determinare quale sequenza di caratteri utilizzare per un operatore personalizzato per ottenere il livello di precedenza desiderato. I caratteri iniziali . vengono ignorati quando il compilatore determina la precedenza.
Vedere anche
- Informazioni di riferimento sul linguaggio F#
- Sovraccarico degli operatori