Uopklarelig type - Nullable type
Nulbare typer er en funktion i nogle programmeringssprog, som gør det muligt at indstille værdien til den særlige værdi NULL i stedet for de sædvanlige mulige værdier for datatypen . I statisk indtastede sprog er en nulbar type en valgmulighedstype , mens der i dynamisk indtastede sprog (hvor værdier har typer, men variabler ikke gør det), giver tilsvarende adfærd ved at have en enkelt nullværdi.
NULL bruges ofte til at repræsentere en manglende værdi eller ugyldig værdi, f.eks. Fra en funktion, der ikke kunne returneres eller et manglende felt i en database, som i NULL i SQL .
Primitive typer som heltal og booleanere kan generelt ikke være nul, men de tilsvarende nullable typer (henholdsvis nullable heltal og nullable Boolean) kan også antage NULL -værdien.
Eksempel
En heltalsvariabel kan repræsentere heltal, men 0 (nul) er et specielt tilfælde, fordi 0 i mange programmeringssprog kan betyde "falsk". Dette giver os heller ingen forestilling om at sige, at variablen er tom, hvilket der er behov for under mange omstændigheder. Dette behov kan opnås med en nullable type. I programmeringssprog som C# 2.0 kan et nulbart heltal f.eks. Deklareres med et spørgsmålstegn (int? X). I programmeringssprog som C# 1.0 kan nulbare typer defineres af et eksternt bibliotek som nye typer (f.eks. NullableInteger, NullableBoolean).
En boolsk variabel gør effekten mere tydelig. Dens værdier kan enten være "sande" eller "falske", mens en nulstillelig boolean også kan indeholde en repræsentation for "usikker". Fortolkningen eller behandlingen af en logisk operation, der involverer en sådan variabel, afhænger imidlertid af sproget.
Sammenlignet med null pointers
I modsætning hertil objekt pointere kan indstilles til NULL som standard i de fleste almindelige sprog, hvilket betyder, at markøren eller referencepunkter til ingenting, at intet objekt er tildelt (variablen ikke pege på noget objekt). Nullable referencer blev opfundet af CAR Hoare i 1965 som en del af Algol W -sproget. Hoare beskrev senere sin opfindelse som en "milliardfejl". Dette skyldes, at objektpegere, der kan være NULL, kræver, at brugeren kontrollerer markøren, før den bruges, og kræver specifik kode for at håndtere sagen, når objektmarkøren er NULL.
Java har klasser, der svarer til skalarværdier, såsom heltal, boolsk og float. Kombineret med autoboxing (automatisk brugsdrevet konvertering mellem objekt og værdi) tillader dette effektivt nullable variabler for skalarværdier.
Sammenlignet med optionstyper
Nullable typen implementeringer normalt holde sig til null objekt mønster .
Der er et mere generelt og formelt begreb, der udvider det ugyldige type -koncept, det kommer fra optionstyper , som håndhæver eksplicit håndtering af undtagelsessagen. Option -implementeringer følger normalt mønsteret Special Case.
Sprogstøtte
Følgende programmeringssprog understøtter ugyldige typer.
Statisk indtastede sprog med native null support inkluderer:
Statisk indtastede sprog med bibliotekets null -understøttelse omfatter:
Dynamisk indtastede sprog med nul inkluderer:
-
Perl -skalarvariabler er standard for
undefog kan indstilles tilundef. - PHP med NULL type og is_null () metode, native nullable type i version 7.1
-
Python har
Noneværdien. -
Julia har
nothingværdien (som er af typenNothing) ogUnion{T, Nothing}typeformatet. - Rubin med nul værdi og NilClass -type.
-
JavaScript har en
nullværdi