Egység típusa
A unit
típus olyan típus, amely egy adott érték hiányát jelzi; a unit
típus csak egyetlen értékkel rendelkezik, amely helyőrzőként működik, ha nincs más érték, vagy nincs szükség rá.
Syntax
// The value of the unit type.
()
Megjegyzések
Minden F#-kifejezésnek értéket kell adnia. Olyan kifejezéseknél, amelyek nem hoznak létre érdekes értéket, a típus unit
értékét használja a rendszer. A unit
típus a C# és a void
C++ nyelvhez hasonló.
A unit
típus egyetlen értékkel rendelkezik, és ezt az értéket a jogkivonat ()
jelöli.
A típus értékét gyakran használják az unit
F#-programozásban annak a helynek a tárolására, ahol az értéket a nyelv szintaxisa megköveteli, de ha nincs szükség vagy nem kíván értéket. Ilyen lehet például egy printf
függvény visszatérési értéke. Mivel a művelet fontos műveletei a printf
függvényben történnek, a függvénynek nem kell tényleges értéket visszaadnia. Ezért a visszatérési érték típusa .unit
Egyes szerkezetek értéket várnak unit
. Például egy do
kötés vagy bármely kód a modul legfelső szintjén várhatóan értékként unit
lesz kiértékelve. A fordító figyelmeztetést jelenít meg, ha egy do
modul legfelső szintjén lévő kötés vagy kód a nem használt értéken kívüli unit
eredményt hoz létre, ahogyan az az alábbi példában látható.
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
Ez a figyelmeztetés a funkcionális programozás egyik jellemzője; más .NET-programozási nyelvekben nem jelenik meg. Egy tisztán funkcionális programban, amelyben a függvények nem rendelkeznek mellékhatásokkal, a végső visszatérési érték egy függvényhívás egyetlen eredménye. Ezért az eredmény figyelmen kívül hagyása lehetséges programozási hiba. Bár az F# nem tisztán funkcionális programozási nyelv, célszerű a funkcionális programozási stílust követni, amikor csak lehetséges.