Condividi tramite


Tipo di unità (F#)

Il tipo unit, indica l'assenza di un valore specifico. Il tipo unit dispone solo di un singolo valore, utilizzato come segnaposto quando non è presente o non è necessario nessun altro valore.

// The value of the unit type.
()

Note

Ogni espressione F# deve restituire un valore.Per le espressioni che non generano un valore di interesse, viene utilizzato il valore di tipo unit.Il tipo unit assomiglia al tipo void nei linguaggi come C# e C++.

Il tipo unit dispone di un singolo valore, indicato dal token ().

Il valore del tipo unit viene spesso utilizzato nella programmazione F# al posto di un valore richiesto dalla sintassi del linguaggio, quando tale valore non è necessario o desiderato.Un esempio potrebbe essere il valore restituito di una funzione printf.Poiché le azioni importanti dell'operazione printf vengono eseguite nella funzione, non è necessario che la funzione restituisca un valore effettivo.Il valore restituito è pertanto di tipo unit.

Alcuni costrutti prevedono un valore unit.Nel caso, ad esempio, di un'associazione do o di codice al livello principale di un modulo, il valore restituito previsto è di tipo unit.Il compilatore genera un avviso quando un'associazione do o il codice al livello principale di un modulo produce un risultato diverso dal valore unit che non viene utilizzato, come illustrato nell'esempio seguente.

let function1 x y = x + y
// The next line results in a compiler warning.
function1 10 20 
// Changing the code to one of the following eliminates the warning.
// Use this when you do want the return value.
let result = function1 10 20
// Use this if you are only calling the function for its side effects,
// and do not want the return value.
function1 10 20 |> ignore

Questo avviso è una caratteristica della programmazione funzionale e non viene visualizzato negli altri linguaggi di programmazione .NET.In un programma puramente funzionale, in cui le funzioni non hanno effetti collaterali, il valore restituito finale è l'unico risultato di una chiamata di funzione.Quando pertanto il risultato viene ignorato, potrebbe verificarsi un errore di programmazione.Sebbene F# non sia un linguaggio di programmazione puramente funzionale, è consigliabile attenersi allo stile di programmazione funzionale, quando possibile.

Vedere anche

Riferimenti

Tipi primitivi (F#)

Altre risorse

Riferimenti per il linguaggio F#