Värden och referens - Value type and reference type

I datorprogrammering kan datatyper delas in i två kategorier: värdetyper och referenstyper . Ett värde av värdetyp är det verkliga värdet. Ett referensvärde är en referens till ett annat värde.

Klassificering per språk

Språk Värde typ Referens typ
C ++ booleaner, tecken, heltal, flytpunktsnummer, klasser (inklusive strängar, listor, kartor, uppsättningar, staplar, köer), uppräkningar referenser, pekare
Java booleaner, tecken, heltal, flytande siffror matriser, klasser (inklusive oföränderliga strängar, listor, ordböcker, uppsättningar, staplar, köer, uppräkningar), gränssnitt, nollpekare
C # strukturer (inklusive booleaner, tecken, heltal, flytpunktsnummer, fastpunktsnummer, listor, ordböcker, uppsättningar, staplar, köer, valfria), uppräkningar klasser (inklusive oföränderliga strängar, arrays, tuples, listor, ordböcker, uppsättningar, stackar, köer), gränssnitt, pekare
Snabb strukturer (inklusive booleaner, tecken, heltal, flytpunktsnummer, fastpunktsnummer, muterbara strängar, tuples, muterbara matriser, muterbara ordböcker, muterbara uppsättningar), uppräkningar (inklusive tillval) och användardefinierade strukturer och uppräkningar som komponerar andra värdetyper. funktioner, stängningar, klasser
Pytonorm klasser (inklusive oföränderliga booleaner, oföränderliga heltal, oföränderliga flytpunktsnummer, oföränderliga komplexa tal, oföränderliga strängar, byte strängar, oföränderliga byte strängar, oföränderliga tuples, oföränderliga intervall, oföränderliga minnesvyer, listor, ordböcker, uppsättningar, oföränderliga uppsättningar, null pekare)
JavaScript oföränderliga booleaner, oföränderliga flytpunktsnummer, oföränderliga symboler, oföränderliga strängar, odefinierade, prototyper (inklusive listor, nollpekare)
OCaml oföränderliga tecken, oföränderliga heltal, oföränderliga flytpunktsnummer, oföränderliga tuplar, oföränderliga uppräkningar (inklusive oföränderliga enheter, oföränderliga booleaner, oföränderliga listor, oföränderliga tillval), oföränderliga undantag, oföränderliga formateringssträngar matriser, oföränderliga strängar, byte strängar, ordböcker (inklusive pekare)

Boxning och unboxing

Programmeringsspråk som skiljer mellan värdetyper och referenstyper erbjuder vanligtvis en mekanism, kallad boxning , för att slå in några eller alla deras värdetyper i referenstyper. Detta tillåter användning av värdetyper i sammanhang som förväntar sig referenstyper. Den omvända processen (för att packa upp värdetypen) kallas unboxing .

Se även

Referenser