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#