Typ hodnoty a typ reference - Value type and reference type - Wikipedia
v programování, typy dat lze rozdělit do dvou kategorií: typy hodnot a referenční typy. Hodnota typu hodnoty je skutečná hodnota. Hodnota referenčního typu je a odkaz na jinou hodnotu.[1][2]
Klasifikace podle jazyka
Jazyk | Typ hodnoty | Typ odkazu |
---|---|---|
C ++[3] | logické hodnoty, znaky, celočíselná čísla, čísla s plovoucí desetinnou čárkou, třídy (včetně řetězců, seznamů, map, množin, zásobníků, front), výčty | odkazy, ukazatele |
Jáva[4] | booleovské znaky, znaky, celá čísla, čísla s plovoucí desetinnou čárkou | pole, třídy (včetně neměnných řetězců, seznamů, slovníků, sad, zásobníků, front, výčtů), rozhraní, nulový ukazatel |
C#[5] | struktury (včetně booleanů, znaků, celých čísel, čísel s plovoucí desetinnou čárkou, čísel s pevnou řádovou čárkou, seznamů, slovníků, sad, zásobníků, front, volitelných doplňků), výčty | třídy (včetně neměnných řetězců, polí, n-tic, seznamů, slovníků, sad, zásobníků, front), rozhraní, ukazatele |
Rychlý[6][7] | struktury (včetně booleanů, znaků, celých čísel, čísel s plovoucí desetinnou čárkou, čísel s pevnou řádovou čárkou, měnitelných řetězců, n-tic, měnitelných polí, měnitelných slovníků, měnitelných sad), výčty (včetně volitelných doplňků) a uživatelem definované struktury a výčty skládající jiné typy hodnot. | funkce, třídy, rozhraní |
Krajta[8] | třídy (včetně neměnných booleovců, neměnných celých čísel, neměnných čísel s plovoucí desetinnou čárkou, neměnných komplexních čísel, neměnných řetězců, bajtových řetězců, neměnných bajtových řetězců, neměnných n-tic, neměnných rozsahů, neměnných zobrazení paměti, seznamů, slovníků, sad, neměnných množin, nuly ukazatel) | |
JavaScript[9] | neměnné booleovy, neměnná čísla s plovoucí desetinnou čárkou, neměnné symboly, neměnné řetězce, nedefinováno, prototypy (včetně seznamů, nulový ukazatel) | |
OCaml[10][11] | neměnné znaky, neměnná celá čísla, neměnná čísla s plovoucí desetinnou čárkou, neměnné n-tice, neměnné výčty (včetně neměnných jednotek, neměnné logické hodnoty, neměnné seznamy, neměnné volitelné), neměnné výjimky, neměnné řetězce formátování | pole, neměnné řetězce, bajtové řetězce, slovníky (včetně ukazatelů) |
Box a rozbalení
Programovací jazyky, které rozlišují mezi hodnotovými typy a referenčními typy, obvykle nabízejí mechanismus s názvem box, zabalit některé nebo všechny jejich typy hodnot do referenčních typů. To umožňuje použití typů hodnot v kontextech očekávajících referenční typy. Konverzní proces (k rozbalení typu hodnoty) je známý jako rozbalení.
Viz také
Reference
- ^ Brown, Erik E. (2006). Windows Forms v akci. Shelter Island, New York: Manning. p. 703. ISBN 978-1-932-39465-8.
- ^ Stephens, Rod (2014). C # 5.0 Programmer's Reference. Indianapolis, Indiana: John Wiley & Sons. p. 57. ISBN 978-1-118-84728-2.
- ^ „Type - cppreference.com“. en.cppreference.com.
- ^ "Kapitola 4. Typy, hodnoty a proměnné". docs.oracle.com.
- ^ „Klíčová slova C #“. docs.microsoft.com.
- ^ „Struktury a třídy - programovací jazyk Swift (Swift 5.2)“. docs.swift.org.
- ^ „Závěry - programovací jazyk Swift (Swift 5.2)“. docs.swift.org.
- ^ „Built-in Types - Python 3.8.2rc1 documentation“. docs.python.org.
- ^ „Jazyková specifikace ECMAScript® 2019“. www.ecma-international.org.
- ^ „Kapitola 24 Základní knihovna“. caml.inria.fr.
- ^ „Upravitelné datové struktury“. caml.inria.fr.