F # keyword 'Einige' - was bedeutet das?F # keyword 'Some'
Antwort
Some
ist kein Schlüsselwort. Es gibt eine option
Art aber, die eine diskriminierte Vereinigung, die zwei Dinge:
Some
, die einen Wert eines Typs hält.None
, die den fehlenden Wert darstellt.
Es ist wie folgt definiert:
type 'a option =
| None
| Some of 'a
Es Art wie ein Nullable Type wirkt, wo Sie ein Objekt haben wollen, die einen Wert von etwas Art halten kann oder überhaupt keinen Wert.
let stringRepresentationOfSomeObject (x : 'a option) =
match x with
| None -> "NONE!"
| Some(t) -> t.ToString()
Discriminated Unions in F# überprüfen können für weitere Informationen über DUs im Allgemeinen und die Option Typ (Manchmal, Keine) im Besonderen. Wie eine vorherige Antwort sagt, ist Some nur ein Union-Case der Option < 'a> type, was ein besonders häufiges/nützliches Beispiel für einen algebraischen Datentyp ist.
Some
wird verwendet, um eine Option Typ anzugeben, oder mit anderen Worten, ein Typ, der vorhanden sein kann oder nicht.
F # unterscheidet sich von den meisten Sprachen in dieser Steuerfluss wird hauptsächlich durch Muster getan traditionellen if/else Logik im Gegensatz Matching.
In der traditionellen if/else-Logik, Sie etwas sehen können:
If (isNull(x)) { do ...
} else { //x exists do ...
}
Mit Mustern Logik passend, schneiden wir bestimmten Code ausführen müssen eine ähnliche Art und Weise, wenn ein Wert Null ist, oder in F # Syntax, Keine
so würden wir den gleichen Code wie
haben match x with | None -> do ... | Some x -> do ...