Enhetstyp
Typen unit
är en typ som anger avsaknaden av ett specifikt värde. unit
Typen har bara ett enda värde, som fungerar som platshållare när inget annat värde finns eller behövs.
Syntax
// The value of the unit type.
()
Kommentarer
Varje F#-uttryck måste utvärderas till ett värde. För uttryck som inte genererar ett värde som är av intresse används värdet av typen unit
. Typen unit
liknar void
typen i språk som C# och C++.
Typen unit
har ett enda värde och det värdet anges av token ()
.
Värdet för unit
typen används ofta i F#-programmering för att lagra den plats där ett värde krävs av språksyntaxen, men när inget värde behövs eller önskas. Ett exempel kan vara returvärdet för en printf
funktion. Eftersom de viktiga åtgärderna för printf
åtgärden utförs i funktionen behöver funktionen inte returnera ett faktiskt värde. Därför är returvärdet av typen unit
.
Vissa konstruktioner förväntar sig ett unit
värde. Till exempel förväntas en do
bindning eller någon kod på den översta nivån i en modul utvärderas till ett unit
värde. Kompilatorn rapporterar en varning när en do
bindning eller kod på den översta nivån i en modul ger ett annat resultat än det unit
värde som inte används, vilket visas i följande exempel.
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
Den här varningen är en egenskap hos funktionell programmering. det visas inte i andra .NET-programmeringsspråk. I ett rent funktionellt program, där funktioner inte har några biverkningar, är det slutliga returvärdet det enda resultatet av ett funktionsanrop. När resultatet ignoreras är det därför ett möjligt programmeringsfel. Även om F# inte är ett rent funktionellt programmeringsspråk är det en bra idé att följa funktionell programmeringsstil när det är möjligt.