Tipo di unità

Il tipo è un tipo che indica l'assenza di un valore specifico. Il unitunit tipo ha un solo valore, che funge da segnaposto quando non esiste alcun altro valore o è necessario.

Sintassi

// The value of the unit type.
()

Osservazioni:

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 unit tipo è simile al void tipo nei linguaggi, ad esempio C# e C++.

Il unit tipo ha un singolo valore e tale valore è indicato dal token ().

Il valore del unit tipo viene spesso usato nella programmazione F# per contenere la posizione in cui è richiesto un valore dalla sintassi del linguaggio, ma quando non è necessario o si desidera alcun valore. Un esempio potrebbe essere il valore restituito di una printf funzione. Poiché le azioni importanti dell'operazione printf si verificano nella funzione, la funzione non deve restituire un valore effettivo. Pertanto, il valore restituito è di tipo unit.

Alcuni costrutti prevedono un unit valore. Ad esempio, si prevede che un'associazione do o un codice al livello superiore di un modulo restituisca un unit valore. Il compilatore segnala un avviso quando un'associazione o un do codice al livello superiore di un modulo genera un risultato diverso dal unit valore non 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; non viene visualizzato in 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. Pertanto, quando il risultato viene ignorato, si tratta di un possibile errore di programmazione. Anche se F# non è un linguaggio di programmazione puramente funzionale, è consigliabile seguire lo stile di programmazione funzionale quando possibile.

Vedi anche