Spazio dei nomi Microsoft.FSharp.Core (F#)
Lo spazio dei nomi contiene funzionalità che supportano le funzionalità di base di F#, tra cui primitivi di linguaggio operatori, attributi, tipi primitivi, stringhe e I/O formattato.
Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Core
Assembly: FSharp.Core (in FSharp.Core.dll)
namespace Microsoft.FSharp.Core
Moduli
Modulo |
Descrizione |
---|---|
modulo ExtraTopLevelOperators |
Tipi e operatori F# aggiuntivi disponibili senza aprire un modulo o uno spazio dei nomi. |
modulo LanguagePrimitives |
Primitive di linguaggio associati al linguaggio F# |
modulo NumericLiterals |
Fornisce implementazioni predefinite della sintassi di valori numerici letterali F# per valori letterali nel formato 'dddI'. |
modulo Operators |
Operatori F# di base. Questo modulo viene aperto automaticamente in ogni codice F#. |
modulo OptimizedClosures |
Un modulo di implementazione utilizzato per mantenere alcune implementazioni private di chiamata ai valori di funzione. |
modulo Option |
Operazioni di base sulle opzioni. |
modulo Printf |
Formattazione printf-style estendibile per numeri e altri tipi di dati |
modulo String |
Operatori di programmazione funzionale per l'elaborazione di stringhe. Ulteriori operazioni sulle stringhe sono disponibili tramite le funzioni membro su stringhe e altre funzionalità nei tipi String e Regex. |
Definizioni dei tipi
Tipo |
Descrizione |
---|---|
tipo [,,,]<'T> |
Matrici quadrimensionali, in genere in base zero. È possibile creare matrici in base diversa da zero utilizzando metodi nel tipo System.Array. |
tipo [,,]<'T> |
Matrici tridimensionali, in genere in base zero. È possibile creare matrici in base diversa da zero utilizzando metodi nel tipo System.Array. |
tipo [,]<'T> |
Matrici bidimensionali, in genere in base zero. |
tipo []<'T> |
Matrici unidimensionali, in base zero, scritte int[], string[] e così via. |
L'aggiunta di questo attributo a una definizione di classe rende tale classe astratta, ovvero non è necessario implementarne tutti i metodi. Le istanze di classi astratte non possono essere costruite in modo diretto. |
|
Se si aggiunge questo attributo a un tipo, per quest'ultimo sarà consentito l'utilizzo del valore letterale 'null' all'interno del codice F#. Questo attributo può essere aggiunto esclusivamente a tipi di interfaccia o di classe definiti in F#. |
|
tipo AutoOpenAttribute |
Questo attributo viene utilizzato per due scopi. Se applicato a un assembly, deve essere provvisto di un argomento stringa il quale deve indicare uno spazio dei nomi o un modulo valido nell'assembly in questione. I file di codice sorgente compilati con un riferimento a questo assembly vengono elaborati in un ambiente in cui il percorso specificato viene aperto automaticamente. |
Se si aggiunge questo attributo a un tipo con valore 'false', il comportamento in base al quale F# rende Serializable tale tipo per impostazione predefinita viene disabilitato. |
|
tipo byref<'T> |
Rappresenta un puntatore gestito nel codice F#. |
Tipi di helper per criteri attivi con 7 scelte. |
|
Tipi di helper per criteri attivi con 6 scelte. |
|
Tipi di helper per criteri attivi con 5 scelte. |
|
Tipi di helper per criteri attivi con 4 scelte. |
|
tipo Choice<'T1,'T2,'T3> |
Tipi di helper per criteri attivi con 3 scelte. |
tipo Choice<'T1,'T2> |
Tipi di helper per criteri attivi con 2 scelte. |
tipo ClassAttribute |
Se si aggiunge questo attributo a un tipo quest'ultimo verrà rappresentato mediante una classe CLI. |
tipo CLIEventAttribute |
Se si aggiunge questo attributo a una proprietà con tipo di evento, la proprietà verrà compilata come evento di metadati CLI, tramite una conversione sintattica in una coppia di metodi 'add_EventName' e 'remove_EventName'. |
Questo attributo consente di indicare che un tipo di contenitore generico soddisfa il vincolo 'comparison' di F# solo se esso viene soddisfatto anche da un argomento generico. Se ad esempio si aggiunge questo attributo al parametro 'T in una definizione di tipo C<'T>, si indica che un tipo C<X> supporta il confronto solo se anche il tipo X lo supporta e vengono soddisfatte tutte le altre condizioni che consentono il supporto del confronto da parte di C<X>. Il tipo C<'T> può comunque essere utilizzato con altri argomenti di tipo, ma un tipo quale C<(int -> int)> non supporterà il confronto poiché il tipo (int -> int) è un tipo di funzione F# e non supporta il confronto. |
|
Questo attributo viene generato automaticamente dal compilatore F# per contrassegnare funzioni e membri che accettano un'applicazione parziale di alcuni dei relativi argomenti e restituiscono una funzione residua |
|
Questo attributo viene inserito in modo automatico dal compilatore F# per contrassegnare tipi e metodi nel codice CLI generato con flag che indicano la corrispondenza con i costrutti di origine originali. Viene utilizzato dalle funzioni nello spazio dei nomi Microsoft.FSharp.Reflection per eseguire il mapping inverso dei costrutti compilati alle rispettive forme originali. Non è destinato all'utilizzo da parte del codice utente. |
|
Questo attributo consente di regolare la rappresentazione di runtime per un tipo. Può essere ad esempio impiegato per indicare la possibilità di utilizzare la rappresentazione null per un tipo. Questa condizione influisce sulla modalità di compilazione di alcuni costrutti. |
|
Indica una o più modifiche alla rappresentazione compilata di un tipo o membro F#. |
|
Questo attributo viene inserito in modo automatico dal compilatore F# per contrassegnare metodi a cui viene associato l'attributo 'CompiledName'. Non è destinato all'utilizzo da parte del codice utente. |
|
Se si aggiunge questo attributo a una definizione di funzione o a un valore in un modulo F#, viene modificato il nome utilizzato per il valore nel codice CLI compilato. |
|
Indica che deve essere creato un messaggio quando il codice sorgente F# utilizza questo costrutto. |
|
L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo con un'implementazione di confronto definita dall'utente. |
|
L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo con un'implementazione di uguaglianza definita dall'utente. |
|
tipo decimal<'Measure> |
Il tipo dei numeri decimali, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Decimal a livello di rappresentazione. |
L'aggiunta di questo attributo a un'unione discriminata con valore false disabilita la generazione di tester di membri di supporto standard, membri di funzioni di accesso e costruttori per la classe CLI generata per il tipo specificato. |
|
Se si aggiunge questo attributo a una dichiarazione di campo, quest'ultimo non viene inizializzato. Durante il controllo del tipo, viene dichiarato un vincolo in base al quale il tipo di campo supporta 'Null'. Se il valore di 'check' è false, il vincolo non viene dichiarato. |
|
tipo EntryPointAttribute |
L'aggiunta di questo attributo a una funzione indica che si tratta del punto di ingresso per un'applicazione. Se l'assente non è specificato per un EXE, viene utilizzata come punto di ingresso l'inizializzazione implicita nelle associazioni di modulo nell'ultimo file della sequenza di compilazione. |
Questo attributo consente di indicare che un tipo di contenitore generico soddisfa il vincolo 'equality' di F# solo se esso viene soddisfatto anche da un argomento generico. Se ad esempio si aggiunge questo attributo al parametro 'T in una definizione di tipo C<'T>, si indica che un tipo C<X> supporta l'uguaglianza solo se anche il tipo X la supporta e vengono soddisfatte tutte le altre condizioni che consentono il supporto dell'uguaglianza da parte di C<X>. Il tipo C<'T> può comunque essere utilizzato con altri argomenti di tipo, ma un tipo quale C<(int -> int)> non supporterà l'uguaglianza poiché il tipo (int -> int) è un tipo di funzione F# e non supporta l'uguaglianza. |
|
Questo attributo consente di contrassegnare valori appartenenti a una funzionalità della libreria sperimentale. |
|
tipo float<'Measure> |
Il tipo dei numeri a virgola mobile, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Double a livello di rappresentazione. |
tipo float32<'Measure> |
Il tipo dei numeri a virgola mobile, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Single a livello di rappresentazione. |
tipo FSharpFunc<'T,'U> |
Il tipo CLI utilizzato per rappresentare valori di funzione F#. Questo tipo non viene in genere utilizzato in modo diretto, sebbene possa essere utilizzato da altri linguaggi CLI. |
Questo attributo viene aggiunto agli assembly generati per indicare la versione dello schema di dati utilizzata per codificare ulteriori informazioni specifiche di F# nella risorsa associata alle librerie F# compilate. |
|
tipo FSharpTypeFunc |
Il tipo CLI utilizzato per rappresentare valori di funzione di tipo di prima classe di F#. Questo tipo è destinato all'utilizzo da parte del codice F# compilato. |
tipo FuncConvert |
Funzioni di helper per la conversione di valori di funzione di prima classe di F# da e in rappresentazioni CLI di funzioni con delegati. |
L'aggiunta di questo attributo a un valore non di funzione con parametri generici indica che gli utilizzi del costrutto possono generare codice generico tramite inferenza del tipo. |
|
tipo ilsigptr<'T> |
Questo tipo viene utilizzato per uso interno dal generatore di codice F#. |
tipo int<'Measure> |
Il tipo dei numeri interi con segno a 32 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int32 a livello di rappresentazione. |
tipo int16<'Measure> |
Il tipo dei Signed Integer a 16 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int16 a livello di rappresentazione. |
tipo int64<'Measure> |
Il tipo dei Signed Integer a 64 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int64 a livello di rappresentazione. |
tipo InterfaceAttribute |
L'aggiunta di questo attributo a un tipo determina la rappresentazione di quest'ultimo mediante un'interfaccia CLI. |
tipo LiteralAttribute |
L'aggiunta di questo attributo a un valore determina la compilazione di quest'ultimo come valore letterale costante CLI. |
L'aggiunta di questo attributo a un tipo determina l'interpretazione di quest'ultimo come tipo rifinito, limitato attualmente ai tipi con parametri di misura. Può essere utilizzato solo in un numero molto limitato di condizioni. |
|
tipo MeasureAttribute |
Se si aggiunge questo attributo a un tipo, quest'ultimo verrà interpretato come unità di misura. Può essere utilizzato solo in un numero molto limitato di condizioni. |
tipo nativeptr<'T> |
Rappresenta un puntatore non gestito nel codice F#. |
L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo in cui il confronto è un'operazione anomala. Ciò significa che il tipo non soddisfa il vincolo 'comparison' di F#. All'interno dei limiti del sistema di tipi F#, ciò consente di garantire che le istanze della funzione di confronto generico di F# non vengano create direttamente in questo tipo. L'attributo e il controllo non vincolano l'utilizzo del confronto con tipi di base o figlio di questo tipo. |
|
Questo attributo consente di contrassegnare valori che non possono essere richiamati dinamicamente al runtime. L'attributo viene in genere aggiunto a funzioni inline le cui implementazioni includono codice non verificabile. Fa in modo che il corpo del metodo creato per la funzione inline generi un'eccezione se viene richiamato in modo dinamico, anziché includere il codice non verificabile nell'assembly generato. |
|
tipo NoEqualityAttribute |
L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo in cui l'uguaglianza è un'operazione anomala. Ciò significa che il tipo non soddisfa il vincolo di 'uguaglianza' di F#. Entro i limiti del sistema di tipi F#, ciò consente di garantire che le istanze della funzione di uguaglianza generica F# non vengano create direttamente in questo tipo. L'attributo e il controllo non vincolano l'utilizzo del confronto con tipi di base o figlio di questo tipo. |
tipo Option<'T> |
Tipo di valori facoltativi. Se utilizzato da altri linguaggi CLI l'opzione vuota corrisponde al valore null. |
Questo attributo viene aggiunto automaticamente per tutti gli argomenti facoltativi. |
|
Tipo di un'espressione di formattazione. |
|
Tipo di un'espressione di formattazione. |
|
tipo Ref<'T> |
tipo dei riferimenti modificabili. Utilizzare le funzioni [:=] e [!] per ottenere e impostare valori di questo tipo. |
Se si aggiunge questo attributo a un tipo di unione o record, viene disabilitata la generazione automatica di override per 'System.Object.Equals(obj)', 'System.Object.GetHashCode()' e 'System.IComparable' per il tipo. Il tipo utilizzerà per impostazione predefinita l'uguaglianza dei riferimenti. |
|
Se si aggiunge questo attributo all'associazione let per la definizione di un valore di primo livello, l'espressione quotation che implementa il valore viene resa disponibile per l'utilizzo al runtime. |
|
Questo attributo consente di indicare che i riferimenti agli elementi di un tipo di unione, record o modulo richiedono l'accesso qualificato esplicito. |
|
L'aggiunta di questo attributo a un tipo, un valore o un membro prevede che gli utilizzi del costrutto creino in modo esplicito istanze di parametri di tipo generici. |
|
tipo sbyte<'Measure> |
Il tipo dei numeri interi con segno a 8 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.SByte a livello di rappresentazione. |
tipo SealedAttribute |
Se si aggiunge questo attributo a una definizione di classe, quest'ultima viene resa sealed, ovvero non può essere estesa o implementata. |
tipo SourceConstructFlags |
Indica la relazione tra un'entità compilata in un binario CLI e un elemento nel codice sorgente F#. |
tipo StructAttribute |
L'aggiunta di questo attributo a un tipo ne determina la rappresentazione mediante uno struct CLI. |
Se si aggiunge questo attributo a un tipo di record, unione, eccezione o struct, viene confermata la generazione automatica di implementazioni per 'System.IComparable' per il tipo. |
|
L'aggiunta di questo attributo a un tipo di unione, record o struct conferma la generazione automatica di override per 'System.Object.Equals(obj)' e 'System.Object.GetHashCode()' per il tipo. |
|
Questo attributo consente di indicare la modalità di visualizzazione predefinita di un tipo in caso di utilizzo degli schemi di formattazione printf '%A' e altri layout di visualizzazione bidimensionali basati su testo. In questa versione di F# gli unici valori validi sono del formato PreText {PropertyName} PostText. Il nome della proprietà indica una proprietà da valutare e visualizzare al posto dell'oggetto stesso. |
|
tipo Unit |
Il tipo 'unit', che dispone di un solo valore "()". Questo valore è speciale e utilizza sempre la rappresentazione 'null'. |
Questo attributo consente di contrassegnare valori il cui utilizzo comporterà la generazione di codice non verificabile. Questi valori vengono inevitabilmente contrassegnati come 'inline' per verificare che non siano presenti costrutti non verificabili nel codice effettivo per la libreria F#, ma vengano piuttosto copiati nel codice sorgente del chiamante. |
|
Se si aggiunge questo attributo a un'associazione F# modificabile, per tutti gli accessi al campo verrà utilizzato il prefisso "volatile". |
Abbreviazioni dei tipi
Tipo |
Descrizione |
---|---|
tipo array<'T> |
Matrici unidimensionali, in base zero, scritte int[], string[] e così via. |
tipo bigint |
Integer arbitrariamente grandi. Abbreviazione per il tipo CLI BigInteger. |
tipo bool |
Abbreviazione per il tipo CLI Boolean. |
tipo byte |
Abbreviazione per il tipo CLI Byte. |
tipo char |
Abbreviazione per il tipo CLI Char. |
tipo decimal |
Abbreviazione per il tipo CLI Decimal. |
tipo double |
Abbreviazione per il tipo CLI Double. |
tipo exn |
Abbreviazione per il tipo CLI Exception. |
tipo float |
Abbreviazione per il tipo CLI Double. |
tipo float32 |
Abbreviazione per il tipo CLI Single. |
Tipo di un'espressione di formattazione. |
|
Tipo di un'espressione di formattazione. |
|
tipo int |
Abbreviazione per il tipo CLI Int32. |
tipo int16 |
Abbreviazione per il tipo CLI Int16. |
tipo int32 |
Abbreviazione per il tipo CLI Int32. |
tipo int64 |
Abbreviazione per il tipo CLI Int64. |
tipo int8 |
Abbreviazione per il tipo CLI SByte. |
tipo nativeint |
Abbreviazione per il tipo CLI IntPtr. |
tipo obj |
Abbreviazione per il tipo CLI Object. |
tipo option<'T> |
Tipo di valori facoltativi. Se utilizzato da altri linguaggi CLI l'opzione vuota corrisponde al valore null. |
tipo ref<'T> |
Tipo di riferimenti modificabili. Utilizzare le funzioni [:=] e [!] per ottenere e impostare valori di questo tipo. |
tipo sbyte |
Abbreviazione per il tipo CLI SByte. |
tipo single |
Abbreviazione per il tipo CLI Single. |
tipo string |
Abbreviazione per il tipo CLI String. |
tipo uint16 |
Abbreviazione per il tipo CLI UInt16. |
tipo uint32 |
Abbreviazione per il tipo CLI UInt32. |
tipo uint64 |
Abbreviazione per il tipo CLI UInt64. |
tipo uint8 |
Abbreviazione per il tipo CLI Byte. |
tipo unativeint |
Abbreviazione per il tipo CLI UIntPtr. |
tipo unit |
Il tipo 'unit', che dispone di un solo valore "()". Si tratta di un valore speciale che utilizza sempre la rappresentazione 'Null'. |
Eccezioni
Eccezione |
Descrizione |
---|---|
eccezione MatchFailureException |
Errori di corrispondenza non completa generano l'eccezione MatchFailureException |