Tipul valorii și tipul de referință - Value type and reference type

În programarea computerizată , tipurile de date pot fi împărțite în două categorii: tipuri de valori și tipuri de referință . O valoare a tipului de valoare este valoarea reală. O valoare a tipului de referință este o referință la o altă valoare.

Clasificare pe limbă

Limba Tipul valorii Tipul de referință
C ++ booleeni, caractere, numere întregi, numere cu virgulă mobilă, clase (inclusiv șiruri, liste, hărți, seturi, stive, cozi), enumerări referințe, indicii
Java booleeni, caractere, numere întregi, numere cu virgulă mobilă tablouri, clase (inclusiv șiruri imuabile, liste, dicționare, seturi, stive, cozi, enumerări), interfețe, pointer nul
C # structuri (inclusiv booleeni, caractere, numere întregi, numere cu virgulă mobilă, numere cu punct fix, liste, dicționare, seturi, stive, cozi, opționale), enumerări clase (inclusiv șiruri imuabile, matrice, tuple, liste, dicționare, seturi, stive, cozi), interfețe, pointeri
Rapid structuri (inclusiv booleeni, caractere, numere întregi, numere cu virgulă mobilă, numere cu punct fix, șiruri mutabile, tupluri, matrice mutabile, dicționare mutabile, seturi mutabile), enumerări (inclusiv opționale) și structuri definite de utilizator și enumerări care compun alte tipuri de valori. funcții, închideri, clase
Piton clase (inclusiv booleeni imuabili, numere întregi imuabile, numere cu virgulă mobilă imutabilă, numere complexe imuabile, șiruri imuabile, șiruri de octeți, șiruri de octeți imuabili, tupluri imuabile, intervale imuabile, vizualizări de memorie imuabile, liste, dicționare, seturi, seturi imuabile, nul indicator)
JavaScript booleeni imuabili, numere în virgulă mobilă imuabile, simboluri imuabile, șiruri imuabile, nedefinit, prototipuri (inclusiv liste, pointer nul)
OCaml caractere imuabile, numere întregi imuabile, numere în virgulă mobilă imuabile, tupluri imuabile, enumerări imuabile (inclusiv unități imuabile, booleeni imuabili, liste imuabile, opționale imuabile), excepții imuabile, șiruri de formatare imuabile tablouri, șiruri imuabile, șiruri de octeți, dicționare (inclusiv indicatori)

Box și dezaburire

Limbajele de programare care fac distincția între tipurile de valori și tipurile de referință oferă de obicei un mecanism, numit box , pentru a înfășura unele sau toate tipurile lor de valori în tipurile de referință. Acest lucru permite utilizarea tipurilor de valori în contexte care așteaptă tipuri de referință. Procesul de conversare (pentru a desface tipul valorii) este cunoscut sub numele de unboxing .

Vezi si

Referințe