Ühiktüüp on tüübiteoorias tüüp, millel saab olla ainult üks väärtus (ning seega ei saa see kanda informatsiooni).[1] Kandja (ühiktüübiga seotud hulk) saab olla mistahes ühe elemendiga hulk. Seda laadi hulkade vahel eksisteerib isomorfism ning seetõttu räägitakse ühiktüübist kui tüübist, ning selle väärtuse üksikasju ei peeta tähtsaks. Ühiktüüpi saab lugeda ka 0-ennikuks (või 0-järjendiks).
Ühiktüüp on tüüpide ja tüübitud funktsioonide kategooria lõppobjekt. Seda ei tohi segamini ajada tühja tüübiga, mis ei luba ühtegi väärtust ning on selle kategooria algusobjekt. Sarnaselt on tõeväärtus (ehk Boolean) tüüp kahe väärtusega.
Ühiktüüp on saadaval enamikus funktsionaalsetes programmeerimiskeeltes. Tüüp "void" on kasutusel paljudes üldlevinud programmeerimiskeeltes, muuhulgas C, C++ ja Java keeles, aga kuna selle kandjahulk on tühi, on sellel tüübil teatud piirangud.
Programmeerimiskeeltes
Paljud programmeerimiskeeled pakuvad ühiktüüpi, et määrata tagastustüüp funktsioonidel, mille ainus eesmärk on tekitada kõrvalmõjusid. Funktsionaalsetes keeltes kasutatakse seda funktsiooni ka parameetrina, kui funktsioon ei võta väärtusena ühtegi parameetrit.
- Haskellis ja Rustis on ühiktüüp
()
ja tema ainus väärtus on samuti()
, mis viitab 0-enniku definitsioonile. - ML-i keeles ja tema järglastes (sealhulgas OCaml, Standard ML ja F#) on tüübi nimi
unit
, aga väärtus on()
. - Common Lispi keeles on tüübi nimi
NULL
ja tal on vaid üks väärtus nimegaNIL
. - Pythoni keeles on tüüp
NoneType
, millel on üks väärtusNone
. - Javas on tüüp
Void
ja selle ainus väärtus onnull
. - JavaScriptis on tüüp
Null
väärtuseganull
ja tüüpUndefined
väärtusegaundefined
. - C++is lisati C++17-ga tüüp
std::monostate
. Enne seda oli võimalik defineerida ühiktüüp ise, näiteksstruct empty{}
.
Viited
- ↑ Vene, Varmo; Apinis, Kalmer (2022). "Tüübisüsteemid" (PDF). Tartu Ülikool. Vaadatud 8. detsember 2023.
You must be logged in to post a comment.