Riferimento per parole chiave

Questo argomento contiene collegamenti a informazioni su tutte le parole chiave del linguaggio F#.

Tabella delle parole chiave F#

La tabella seguente mostra tutte le parole chiave F# in ordine alfabetico, insieme a brevi descrizioni e collegamenti ad argomenti pertinenti che contengono altre informazioni.

Parola chiave Collega Descrizione
abstract Members

Classi astratte
Indica un metodo che non ha implementazioni nel tipo in cui è dichiarato o che è virtuale e ha un'implementazione predefinita.
and let Associazioni

Record

Members

Vincoli
Usato in associazioni ricorsive e record, nelle dichiarazioni di proprietà e con più vincoli sui parametri generici.
as Classi

Criteri di ricerca
Utilizzato per assegnare all'oggetto classe corrente un nome di oggetto. Usato anche per assegnare un nome a un modello intero all'interno di una corrispondenza del criterio.
assert Asserzioni Usato per verificare il codice durante il debug.
base Classi

Ereditarietà
Utilizzato come nome dell'oggetto classe di base.
begin Sintassi dettagliata Nella sintassi dettagliata indica l'inizio di un blocco di codice.
class Classi Nella sintassi dettagliata indica l'inizio di una definizione di classe.
default Members Indica un'implementazione di un metodo astratto; usato insieme a una dichiarazione di metodo astratto per creare un metodo virtuale.
delegate Delegati Utilizzato per dichiarare un delegato.
do Associazioni do

Cicli: espressione for...to

Cicli: espressione for...in

Cicli: espressione while...do
Usato nei costrutti di ciclo o per eseguire codice imperativo.
done Sintassi dettagliata Nella sintassi dettagliata indica la fine di un blocco di codice in un'espressione di ciclo.
downcast Cast e conversioni Utilizzato per eseguire la conversione in un tipo inferiore nella catena di ereditarietà.
downto Cicli: espressione for...to In un'espressione for , utilizzata durante il conteggio inverso.
elif Espressioni condizionali: if...then...else Usato nella diramazione condizionale. Forma breve di else if.
else Espressioni condizionali: if...then...else Usato nella diramazione condizionale.
end Struct

Unioni discriminate

Record

Estensioni di tipo

Sintassi dettagliata
Nelle definizioni dei tipi e nelle estensioni di tipo indica la fine di una sezione delle definizioni dei membri.

Nella sintassi dettagliata, usata per specificare la fine di un blocco di codice che inizia con la begin parola chiave .
exception Gestione delle eccezioni

Tipi di eccezione
Utilizzato per dichiarare un tipo di eccezione.
extern Funzioni esterne Indica che un elemento programma dichiarato è definito in un altro assembly o binario.
false Tipi primitivi Usato come valore letterale booleano.
finally Eccezioni: espressione try...finally Usato insieme try a per introdurre un blocco di codice che viene eseguito indipendentemente dal fatto che si verifichi un'eccezione.
fixed Fisso Usato per "aggiungere" un puntatore nello stack per evitare che venga sottoposto a Garbage Collection.
for Cicli: espressione for...to

Espressione Loops: for...in
Usato nei costrutti di ciclo.
fun Espressioni lambda: parola fun chiave Usato nelle espressioni lambda, note anche come funzioni anonime.
function Espressioni match

Espressioni lambda: parola chiave fun
Usato come alternativa più breve alla fun parola chiave e a un'espressione match in un'espressione lambda con criteri di ricerca per un singolo argomento.
global Namespaces (Spazi dei nomi) Usato per fare riferimento allo spazio dei nomi .NET di primo livello.
if Espressioni condizionali: if...then...else Usato nei costrutti di diramazione condizionale.
in Espressione Loops: for...in

Sintassi dettagliata
Usato per le espressioni di sequenza e, nella sintassi dettagliata, per separare le espressioni dalle associazioni.
inherit Ereditarietà Utilizzato per specificare una classe di base o un'interfaccia di base.
inline Funzioni

Funzioni inline
Usato per indicare una funzione che deve essere integrata direttamente nel codice del chiamante.
interface Interfacce Usato per dichiarare e implementare le interfacce.
internal Controllo dell’accesso Consente di specificare che un membro è visibile all'interno di un assembly ma non all'esterno di esso.
lazy Espressioni lazy Consente di specificare un'espressione da eseguire solo quando è necessario un risultato.
let let Associazioni Utilizzato per associare o associare un nome a un valore o a una funzione.
let! Espressioni asincrone

Espressioni di attività

Espressioni di calcolo
Usato nelle espressioni asincrone per associare un nome al risultato di un calcolo asincrono o, in altre espressioni di calcolo, usato per associare un nome a un risultato, che è del tipo di calcolo.
match Espressioni match Usato per creare un ramo confrontando un valore con un criterio.
match! Espressioni di calcolo Usato per inlineare una chiamata a un'espressione di calcolo e un criterio corrispondono al risultato.
member Members Utilizzato per dichiarare una proprietà o un metodo in un tipo di oggetto.
module moduli Usato per associare un nome a un gruppo di tipi, valori e funzioni correlati per separarlo logicamente da un altro codice.
mutable Associazioni let Usato per dichiarare una variabile, ovvero un valore che può essere modificato.
namespace Namespaces (Spazi dei nomi) Usato per associare un nome a un gruppo di tipi e moduli correlati, per separarlo logicamente da un altro codice.
new Costruttori

Vincoli
Utilizzato per dichiarare, definire o richiamare un costruttore che crea o che può creare un oggetto .

Usato anche nei vincoli di parametri generici per indicare che un tipo deve avere un determinato costruttore.
not Riferimenti per simboli e operatori

Vincoli
Non in realtà una parola chiave. Tuttavia, not struct in combinazione viene usato come vincolo di parametro generico.
null Valori Null

Vincoli
Indica l'assenza di un oggetto .

Usato anche nei vincoli di parametro generici.
of Unioni discriminate

Delegati

Tipi di eccezione
Usato nelle unioni discriminate per indicare il tipo di categorie di valori e nelle dichiarazioni di delega ed eccezione.
open Dichiarazioni di importazione: parola chiave open Usato per rendere disponibile il contenuto di uno spazio dei nomi o di un modulo senza qualifica.
or Riferimenti per simboli e operatori

Vincoli
Usato con condizioni booleane come operatore booleano or . Equivalente a ||.

Usato anche nei vincoli membro.
override Members Usato per implementare una versione di un metodo astratto o virtuale diverso dalla versione di base.
private Controllo dell’accesso Limita l'accesso a un membro al codice nello stesso tipo o modulo.
public Controllo dell’accesso Consente l'accesso a un membro dall'esterno del tipo.
rec Funzioni Usato per indicare che una funzione è ricorsiva.
return Espressioni di calcolo

Espressioni asincrone

Espressioni di attività
Utilizzato per indicare un valore da fornire come risultato di un'espressione di calcolo.
return! Espressioni di calcolo

Espressioni asincrone

Espressioni di attività
Utilizzato per indicare un'espressione di calcolo che, quando valutata, fornisce il risultato dell'espressione di calcolo contenitore.
select Espressioni di query Usato nelle espressioni di query per specificare i campi o le colonne da estrarre. Si noti che si tratta di una parola chiave contestuale, il che significa che non è effettivamente una parola riservata e funge solo da parola chiave nel contesto appropriato.
static Members Consente di indicare un metodo o una proprietà che può essere chiamata senza un'istanza di un tipo o un membro valore condiviso tra tutte le istanze di un tipo.
struct Struct

Tuple

Vincoli
Utilizzato per dichiarare un tipo di struttura.

Consente di specificare una tupla di struct.

Usato anche nei vincoli di parametro generici.

Usato per la compatibilità OCaml nelle definizioni dei moduli.
then Espressioni condizionali: if...then...else

Costruttori
Usato nelle espressioni condizionali.

Utilizzato anche per eseguire effetti collaterali dopo la costruzione di oggetti.
to Cicli: espressione for...to Utilizzato nei for cicli per indicare un intervallo.
true Tipi primitivi Usato come valore letterale booleano.
try Eccezioni: Il tentativo... con espressione

Eccezioni: Il tentativo... finally Expression
Usato per introdurre un blocco di codice che potrebbe generare un'eccezione. Usato insieme a with o finally.
type Tipi F#

Classi

Record

Struct

Enumerazioni

Unioni discriminate

Abbreviazioni dei tipi

Unità di misura
Utilizzato per dichiarare una classe, un record, una struttura, un'unione discriminata, un tipo di enumerazione, un'unità di misura o un'abbreviazione del tipo.
upcast Cast e conversioni Utilizzato per eseguire la conversione in un tipo superiore nella catena di ereditarietà.
use Gestione delle risorse: parola chiave use Usato invece di let per i valori che devono Dispose essere chiamati per liberare risorse.
use! Espressioni di calcolo

Espressioni asincrone

Espressioni di attività
Usato invece di in espressioni asincrone e altre espressioni di let! calcolo per i valori che devono Dispose essere chiamati per liberare risorse.
val Campi espliciti: parola chiave val

Firme

Members
Utilizzato in una firma per indicare un valore o in un tipo per dichiarare un membro, in situazioni limitate.
void Tipi primitivi Indica il tipo .NET void . Usato durante l'interoperabilità con altri linguaggi .NET.
when Vincoli Usato per le condizioni booleane (quando guardie) sulle corrispondenze dei criteri e per introdurre una clausola di vincolo per un parametro di tipo generico.
while Cicli: espressione while...do Introduce un costrutto di ciclo.
with Espressioni match

Espressioni di oggetto

Copiare e aggiornare espressioni di record

Estensioni di tipo

Eccezioni: espressione try...with
Usato insieme alla match parola chiave nelle espressioni di ricerca di criteri. Usato anche nelle espressioni oggetto, nelle espressioni di oggetto, nelle espressioni di copia dei record e nelle estensioni dei tipi per introdurre definizioni dei membri e per introdurre gestori eccezioni.
yield Elenchi, matrici, sequenze Utilizzato in un'espressione di elenco, matrice o sequenza per produrre un valore per una sequenza. In genere può essere omesso, perché è implicito nella maggior parte delle situazioni.
yield! Espressioni di calcolo

Espressioni asincrone

Espressioni di attività
Utilizzato in un'espressione di calcolo per accodare il risultato di una determinata espressione di calcolo a una raccolta di risultati per l'espressione di calcolo contenitore.
const Provider di tipi Provider di tipi consente l'uso di const come parola chiave per specificare un valore letterale costante come argomento di parametro di tipo.

I token seguenti sono riservati in F# perché sono parole chiave nel linguaggio OCaml:

  • asr
  • land
  • lor
  • lsl
  • lsr
  • lxor
  • mod
  • sig

Se si usa l'opzione del --mlcompatibility compilatore, le parole chiave precedenti sono disponibili per l'uso come identificatori.

I token seguenti sono riservati come parole chiave per l'espansione futura di F#:

  • break
  • checked
  • component
  • const
  • constraint
  • continue
  • event
  • external
  • include
  • mixin
  • parallel
  • process
  • protected
  • pure
  • sealed
  • tailcall
  • trait
  • virtual

I token seguenti sono stati riservati come parole chiave, ma sono stati rilasciati in F# 4.1, quindi ora è possibile usarli come identificatori:

Parola chiave Motivo
method Usare member per introdurre metodi.
constructor Usare new per introdurre costruttori.
atomic Correlato alla dissolvenza per la memoria transazionale circa il 2006. Si tratta ora di un'espressione di calcolo definita dalla libreria.
eager Non è più necessario; inizialmente è stato progettato per corrispondere let eager a un potenziale let lazy.
object Non c'è bisogno di riservarlo.
recursive Usare rec.
functor Se F# ha aggiunto moduli con parametri, si userà module M(args) = ....
measure L'attributo [<Measure>] è sufficiente.
volatile L'attributo [<Volatile>] è sufficiente.

Vedi anche