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 .