Dela via


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.

Se även