Freigeben über


Einheitentyp

Der Typ ist ein Typ, der das Fehlen eines bestimmten Werts angibt. Der unitunit Typ hat nur einen einzelnen Wert, der als Platzhalter fungiert, wenn kein anderer Wert vorhanden ist oder erforderlich ist.

Syntax

// The value of the unit type.
()

Bemerkungen

Jeder F#-Ausdruck muss in einen Wert ausgewertet werden. Für Ausdrücke, die keinen wert generieren, der von Interesse ist, wird der Wert des Typs unit verwendet. Der unit Typ ähnelt dem void Typ in Sprachen wie C# und C++.

Der unit Typ weist einen einzelnen Wert auf, und dieser Wert wird durch das Token ()angegeben.

Der Wert des Typs wird häufig in der unit F#-Programmierung verwendet, um die Stelle zu halten, an der ein Wert für die Sprachsyntax erforderlich ist, aber wenn kein Wert benötigt oder gewünscht wird. Ein Beispiel kann der Rückgabewert einer printf Funktion sein. Da die wichtigen Aktionen des printf Vorgangs in der Funktion auftreten, muss die Funktion keinen tatsächlichen Wert zurückgeben. Daher ist der Rückgabewert vom Typ unit.

Einige Konstrukte erwarten einen unit Wert. Beispielsweise wird erwartet, dass eine do Bindung oder ein beliebiger Code auf der obersten Ebene eines Moduls zu einem unit Wert ausgewertet wird. Der Compiler meldet eine Warnung, wenn eine Bindung oder ein do Code auf der obersten Ebene eines Moduls ein anderes Ergebnis als den wert erzeugt, der unit nicht verwendet wird, wie im folgenden Beispiel gezeigt.

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

Diese Warnung ist ein Merkmal der funktionalen Programmierung; sie wird nicht in anderen .NET-Programmiersprachen angezeigt. In einem rein funktionalen Programm, bei dem Funktionen keine Nebenwirkungen haben, ist der endgültige Rückgabewert das einzige Ergebnis eines Funktionsaufrufs. Wenn das Ergebnis ignoriert wird, ist es daher ein möglicher Programmierfehler. Obwohl F# keine rein funktionale Programmiersprache ist, empfiehlt es sich, nach Möglichkeit funktionalen Programmierstilen zu folgen.

Siehe auch