Condividi tramite


Informazioni di riferimento sul linguaggio F#

Questa sezione è un riferimento per F#, un linguaggio di programmazione multi-paradigma destinato a .NET. F# supporta modelli di programmazione funzionali, orientati agli oggetti e imperativi.

Organizzazione del codice F#

La tabella seguente illustra gli articoli di riferimento relativi all'organizzazione del codice F#.

Titolo Descrizione
Namespaces Informazioni sul supporto dello spazio dei nomi in F#. Uno spazio dei nomi consente di organizzare il codice in aree di funzionalità correlate, consentendo di associare un nome a un raggruppamento di elementi del programma.
Moduli Informazioni sui moduli. Un modulo F# è simile a uno spazio dei nomi e può includere anche valori e funzioni. Il raggruppamento del codice nei moduli consente di mantenere insieme il codice correlato e di evitare conflitti di nomi nel programma.
open Dichiarazioni Informazioni sul funzionamento open . Una open dichiarazione specifica un modulo, uno spazio dei nomi o un tipo i cui elementi è possibile fare riferimento senza usare un nome completo.
firme Informazioni sulle firme e sui file di firma. Un file di firma contiene informazioni sulle firme pubbliche di un set di elementi del programma F#, ad esempio tipi, spazi dei nomi e moduli. Può essere usato per specificare l'accessibilità di questi elementi del programma.
Controllo dell’accesso Informazioni sul controllo di accesso in F#. Il controllo di accesso significa dichiarare quali client sono in grado di usare determinati elementi del programma, ad esempio tipi, metodi, funzioni e così via.
Documentazione XML Informazioni sul supporto per la generazione di file di documentazione dai commenti della documentazione XML, noti anche come commenti a barra triplica. È possibile produrre documentazione dai commenti di codice in F# come in altri linguaggi .NET.

Valori letterali e stringhe

La tabella seguente illustra gli articoli di riferimento che descrivono valori letterali e stringhe in F#.

Titolo Descrizione
valori letterali Informazioni sulla sintassi per i valori letterali in F# e su come specificare le informazioni sul tipo per i valori letterali F#.
Stringhe Informazioni sulle stringhe in F#. Il string tipo rappresenta testo non modificabile, come sequenza di caratteri Unicode. string è un alias per System.String in .NET.
Stringhe interpolate Informazioni sulle stringhe interpolate, una forma speciale di stringa che consente di incorporare le espressioni F# direttamente all'interno di esse.

Valori e funzioni

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti relativi al linguaggio relativi a valori, letassociazioni e funzioni.

Titolo Descrizione
Valori Informazioni sui valori, che sono quantità non modificabili con un tipo specifico; I valori possono essere numeri integrali o a virgola mobile, caratteri o testo, elenchi, sequenze, matrici, tuple, unioni discriminate, record, tipi di classe o valori di funzione.
Funzioni Le funzioni sono l'unità fondamentale dell'esecuzione del programma in qualsiasi linguaggio di programmazione. Una funzione F# ha un nome, può avere parametri e accettare argomenti e ha un corpo. F# supporta anche costrutti di programmazione funzionale, ad esempio la gestione di funzioni come valori, l'uso di funzioni senza nome nelle espressioni, la composizione di funzioni per formare nuove funzioni, funzioni curried e la definizione implicita delle funzioni tramite l'applicazione parziale degli argomenti di funzione.
Espressioni di funzione Informazioni su come usare la parola chiave "fun" F# per definire un'espressione lambda, ovvero una funzione anonima.

Cicli e condizionali

La tabella seguente elenca gli articoli che descrivono cicli F# e condizionali.

Titolo Descrizione
Espressioni condizionali: if...then...else Informazioni sull'espressione if...then...else , che esegue rami di codice diversi e restituisce anche un valore diverso a seconda dell'espressione booleana specificata.
Cicli: for...in espressione Informazioni sull'espressione for...in , un costrutto di ciclo usato per scorrere le corrispondenze di un criterio in una raccolta enumerabile, ad esempio un'espressione di intervallo, una sequenza, un elenco, una matrice o un altro costrutto che supporta l'enumerazione.
Cicli: for...to espressione Informazioni sull'espressione for...to , usata per scorrere un ciclo su un intervallo di valori di una variabile di ciclo.
Cicli: while...do espressione Informazioni sull'espressione, usata per eseguire l'esecuzione while...do iterativa (ciclo) mentre una condizione di test specificata è true.

Corrispondenza di Pattern

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti relativi al linguaggio.

Titolo Descrizione
Abbinamento di Modelli Informazioni sui modelli, che sono regole per la trasformazione dei dati di input e vengono usati in F#. È possibile confrontare i dati con un modello, scomporre i dati in parti costitutive o estrarre informazioni dai dati in diversi modi.
espressioni di corrispondenza Informazioni sull'espressione match , che fornisce il controllo di diramazione basato sul confronto di un'espressione con un set di modelli.
Modelli Attivi Informazioni sui modelli attivi. I modelli attivi consentono di definire partizioni denominate che suddividono i dati di input. È possibile usare modelli attivi per scomporre i dati in modo personalizzato per ogni partizione.

Gestione delle eccezioni

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti relativi al linguaggio correlati alla gestione delle eccezioni.

Titolo Descrizione
gestione delle eccezioni Contiene informazioni sul supporto per la gestione delle eccezioni in F#.
Espressione try...with Informazioni su come usare l'espressione per la try...with gestione delle eccezioni.
Espressione try...finally Informazioni su come l'espressione F# try...finally consente di eseguire codice di pulizia anche se un blocco di codice genera un'eccezione.
Parola use chiave Informazioni sulle parole chiave use e using, che possono controllare l'inizializzazione e il rilascio delle risorse.
Asserzioni Informazioni sull'espressione assert , ovvero una funzionalità di debug che è possibile usare per testare un'espressione. In caso di errore in modalità debug, un'asserzione genera una finestra di dialogo di errore di sistema.

Tipi e inferenza dei tipi

La tabella seguente illustra gli articoli di riferimento che descrivono il funzionamento dei tipi e dell'inferenza dei tipi in F#.

Titolo Descrizione
Tipi Informazioni sui tipi usati in F# e su come vengono denominati e descritti i tipi F#.
tipi di base Informazioni sui tipi fondamentali usati in F#. Fornisce anche i tipi .NET corrispondenti e i valori minimo e massimo per ogni tipo.
Tipo di unità Informazioni sul unit tipo, ovvero un tipo che indica l'assenza di un valore specifico. Il unit tipo ha solo un singolo valore, che funge da segnaposto quando non esiste alcun altro valore o è necessario.
Abbreviazioni dei tipi Informazioni sulle abbreviazioni dei tipi, che sono nomi alternativi per i tipi.
Inferenza di tipi Informazioni sul modo in cui il compilatore F# deduce i tipi di valori, variabili, parametri e valori restituiti.
Cast e conversioni Informazioni sul supporto per le conversioni dei tipi in F#.
Generics Informazioni sui costrutti generici in F#.
Generalizzazione automatica Informazioni su come F# generalizza automaticamente gli argomenti e i tipi di funzioni in modo che funzionino con più tipi quando possibile.
Vincoli Informazioni sui vincoli che si applicano ai parametri di tipo generico per specificare i requisiti per un argomento di tipo in un tipo o una funzione generica.
Tipi flessibili Informazioni sui tipi flessibili. Un'annotazione di tipo flessibile indica che un parametro, una variabile o un valore ha un tipo compatibile con il tipo specificato, in cui la compatibilità è determinata dalla posizione in una gerarchia orientata agli oggetti di classi o interfacce.
Unità di misura Informazioni sulle unità di misura. I valori a virgola mobile in F# possono avere unità di misura associate, che vengono in genere usate per indicare lunghezza, volume, massa e così via.
Byrefs Informazioni sui tipi byref e byref-like in F#, usati per la programmazione di basso livello.

Tuple, elenchi, raccolte, opzioni

La tabella seguente illustra gli articoli di riferimento che descrivono i tipi supportati da F#.

Titolo Descrizione
Tuple Informazioni sulle tuple, che sono raggruppamenti di valori non denominati ma ordinati di tipi possibilmente diversi.
raccolte Panoramica dei tipi di raccolta funzionale F#, inclusi i tipi per matrici, elenchi, sequenze (seq), mappe e set.
Liste Informazioni sugli elenchi. Un elenco in F# è una serie ordinata e non modificabile di elementi dello stesso tipo.
Opzioni Informazioni sul tipo di opzione. Un'opzione in F# viene usata quando un valore può essere o meno esistente. Un'opzione ha un tipo sottostante e può contenere un valore di tale tipo o potrebbe non avere un valore.
matrici Informazioni sulle matrici. Le matrici sono sequenze a dimensione fissa, in base zero e modificabili di elementi dati consecutivi, tutti dello stesso tipo.
Sequenze Informazioni sulle sequenze. Una sequenza è una serie logica di elementi di un tipo. I singoli elementi di sequenza vengono calcolati solo se necessario, pertanto la rappresentazione può essere inferiore a un numero di elementi letterali indica.
Espressioni di sequenza Informazioni sulle espressioni di sequenza, che consentono di generare sequenze di dati su richiesta.
Celle di riferimento Informazioni sulle celle di riferimento, che sono posizioni di archiviazione che consentono di creare variabili modificabili con semantica di riferimento.

Record e unioni discriminate

La tabella seguente illustra gli articoli di riferimento che descrivono le definizioni dei tipi di unione discriminate e dei record supportati da F#.

Titolo Descrizione
Record Informazioni sui record. I record rappresentano semplici aggregazioni di valori denominati, facoltativamente con i membri.
Record anonimi Informazioni su come costruire e usare record anonimi, una funzionalità del linguaggio che consente di manipolare i dati.
Unioni discriminate Informazioni sulle unioni discriminate, che forniscono supporto per i valori che possono essere una di una varietà di casi denominati, ognuno con valori e tipi eventualmente diversi.
Struct Informazioni sugli struct, che sono tipi di oggetti compatta che possono essere più efficienti di una classe per i tipi con una piccola quantità di dati e un comportamento semplice.
Enumerazioni Le enumerazioni sono tipi con un set definito di valori denominati. È possibile usarli al posto dei valori letterali per rendere il codice più leggibile e gestibile.

Programmazione di oggetti

La tabella seguente illustra gli articoli di riferimento che descrivono la programmazione degli oggetti F#.

Titolo Descrizione
classi Informazioni sulle classi, che sono tipi che rappresentano oggetti che possono avere proprietà, metodi ed eventi.
Interfacce Informazioni sulle interfacce, che specificano set di membri correlati implementati da altre classi.
classi astratte Informazioni sulle classi astratte, ovvero classi che lasciano alcuni o tutti i membri non implementati, in modo che le implementazioni possano essere fornite dalle classi derivate.
Estensioni dei tipi Informazioni sulle estensioni dei tipi, che consentono di aggiungere nuovi membri a un tipo di oggetto definito in precedenza.
Delegati Informazioni sui delegati, che rappresentano una chiamata di funzione come oggetto .
Ereditarietà Informazioni sull'ereditarietà, usata per modellare la relazione "is-a" o la sottotipizzazione nella programmazione orientata agli oggetti.
Membri Informazioni sui membri dei tipi di oggetto F#.
Parametri e argomenti Informazioni sul supporto del linguaggio per la definizione di parametri e il passaggio di argomenti a funzioni, metodi e proprietà. Include informazioni su come passare per riferimento.
Sovraccarico degli operatori Informazioni su come eseguire l'overload degli operatori aritmetici in una classe o in un tipo di record e a livello globale.
Espressioni di oggetto Informazioni sulle espressioni oggetto, ovvero espressioni che creano nuove istanze di un tipo di oggetto anonimo creato in modo dinamico basato su un tipo di base, un'interfaccia o un set di interfacce esistente.

Asincrona, attività e differita

Nella tabella seguente sono elencati gli argomenti che descrivono espressioni asincrone, attività ed espressioni lazy F#.

Titolo Descrizione
Espressioni asincrone Informazioni sulle espressioni asincrone, che consentono di scrivere codice asincrono in modo molto vicino al modo in cui si scriverà naturalmente codice sincrono.
Espressioni di attività Informazioni sulle espressioni di attività, che rappresentano un modo alternativo di scrivere codice asincrono usato durante l'interoperabilità con il codice .NET che utilizza o produce attività .NET.
Espressioni differita Informazioni sulle espressioni lazy, che sono calcoli che non vengono valutati immediatamente, ma vengono invece valutati quando il risultato è effettivamente necessario.

Espressioni di calcolo e query

Nella tabella seguente sono elencati gli argomenti che descrivono espressioni e query di calcolo F#.

Titolo Descrizione
Espressioni di calcolo Informazioni sulle espressioni di calcolo in F#, che offrono una sintassi pratica per la scrittura di calcoli che possono essere sequenziati e combinati usando costrutti e associazioni del flusso di controllo. Possono essere usati per gestire i dati, il controllo e gli effetti collaterali nei programmi funzionali.
Espressioni di query Informazioni sulle espressioni di query, una funzionalità del linguaggio che implementa LINQ for F# e consente di scrivere query su un'origine dati o una raccolta enumerabile.

Attributi, reflection, virgolette e formattazione testo normale

La tabella seguente elenca gli articoli che descrivono le funzionalità riflettenti di F#, inclusi attributi, virgolette, nameofe formattazione di testo normale.

Titolo Descrizione
Attributi Informazioni su come gli attributi F# consentono l'applicazione dei metadati a un costrutto di programmazione.
nameof Informazioni sull'operatore nameof , una funzionalità di metaprogrammazione che consente di produrre il nome di qualsiasi simbolo nel codice sorgente.
Informazioni sul chiamante Informazioni su come usare attributi di argomento info chiamante per ottenere informazioni sul chiamante da un metodo.
Identificatori di riga, file e percorso di origine Informazioni sugli identificatori __LINE__, __SOURCE_DIRECTORY__e __SOURCE_FILE__, che sono valori predefiniti che consentono di accedere al numero di riga di origine, alla directory e al nome del file nel codice.
Virgolette di codice Informazioni sulle virgolette di codice, una funzionalità del linguaggio che consente di generare e usare espressioni di codice F# a livello di codice.
Formattazione testo normale Informazioni su come usare sprintf e altre formattazioni di testo normale nelle applicazioni e negli script F#.

Provider di tipi

Nella tabella seguente sono elencati gli articoli che descrivono i provider di tipi F#.

Titolo Descrizione
Provider di tipi Informazioni sui provider di tipi e collegamenti alle procedure dettagliate sull'uso dei provider di tipi predefiniti per accedere ai database e ai servizi Web.
Creare un provider di tipi Informazioni su come creare provider di tipi F# personalizzati esaminando diversi provider di tipi semplici che illustrano i concetti di base.

Informazioni di riferimento sulle API della libreria di base F#

Informazioni di riferimento sull'API F# Core Library (FSharp.Core) sono le informazioni di riferimento per tutti gli spazi dei nomi, i moduli, i tipi e le funzioni della libreria di base F#.

Tabelle di riferimento

La tabella seguente illustra gli articoli di riferimento che forniscono tabelle di parole chiave, simboli e valori letterali usati come token in F#.

Titolo Descrizione
Informazioni di riferimento sulle parole chiave Contiene collegamenti a informazioni su tutte le parole chiave del linguaggio F#.
Riferimento a Simboli e Operatori Contiene una tabella di simboli e operatori usati in F#.

Costrutti supportati dal compilatore

Nella tabella seguente sono elencati gli argomenti che descrivono costrutti speciali supportati dal compilatore.

Argomento Descrizione
Opzioni del Compilatore Descrive le opzioni della riga di comando per il compilatore F#.
Direttive del compilatore Vengono descritte le direttive del processore e le direttive del compilatore supportate dal compilatore F#.