Tipo di unità
Il tipo è un tipo che indica l'assenza di un valore specifico. Il unit
unit
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.