Type valeur et type référence
En programmation informatique, les types de données peuvent être divisés en deux catégories : les types valeur et les types référence. Une valeur de type valeur est la véritable valeur. Une valeur de type référence est une référence vers une autre valeur[1],[2].
Classification par langage
modifierLangage | Type valeur | Type référence |
---|---|---|
C++[3] | booléens, caractères, nombres entiers, nombres à virgule flottante, tableaux, classes (dont chaînes de caractères, listes, dictionnaires, ensembles, piles, files), énumérations | alias, pointeurs |
Java[4] | booléens, caractères, nombres entiers, nombres à virgule flottante | tableaux, classes (dont chaînes de caractères constantes, listes, dictionnaires, ensembles, piles, files, énumérations), interfaces, pointeur nul |
C#[5] | structures (dont booléens, caractères, nombres entiers, nombres à virgule flottante, nombres à virgule fixe, listes, dictionnaires, ensembles, piles, files, options), énumérations | classes (dont chaînes de caractères constantes, tableaux, multiplets, listes, dictionnaires, ensembles, piles, files), interfaces, pointeurs |
Swift[6],[7] | structures (dont booléens, caractères, nombres entiers, nombres à virgule flottante, nombres à virgule fixe, chaînes de caractères constantes, multiplets, listes, dictionnaires, ensembles, piles, files), énumérations (dont options) | fonctions, classes, interfaces |
Python[8] | classes (dont booléens constants, nombres entiers constants, nombres à virgule flottante constants, nombres complexes constants, chaînes de caractères constantes, chaînes d’octets, chaînes d’octets constantes, multiplets constants, plages constantes, vues de mémoire constantes, listes, dictionnaires, ensembles, ensembles constants, pointeur nul) | |
JavaScript[9] | booléens constants, nombres à virgule flottante constants, symboles constants, chaînes de caractères constantes, indéfini, prototypes (dont listes, pointeur nul) | |
OCaml[10],[11] | caractères constants, nombres entiers constants, nombres à virgule flottante constants, multiplets constants, énumérations constantes (dont unité constante, booléens constants, listes constantes, options constantes), exceptions constantes, chaînes de formatage constantes | tableaux, chaînes de caractères constantes, chaînes d’octets, dictionnaires (dont pointeurs) |
Emballage et déballage
modifierLes langages de programmation qui distinguent les types valeur des types référence fournissent souvent un mécanisme, appelé emballage (boxing en anglais), pour convertir les types valeur en types référence. Cela permet l'utilisation de types valeur dans des contextes nécessitant des types référence. L'opération inverse est appelé déballage (unboxing en anglais).
Voir aussi
modifierRéférences
modifier- Erik E. Brown, Windows Forms in Action, Shelter Island, New York, Manning, (ISBN 978-1-932-39465-8, lire en ligne), p. 703
- Rod Stephens, C# 5.0 Programmer's Reference, Indianapolis, Indiana, John Wiley & Sons, (ISBN 978-1-118-84728-2, lire en ligne), p. 57
- (en) « Type », sur cppreference.com (consulté le ).
- « Chapter 4. Types, Values, and Variables », sur oracle.com (consulté le ).
- (en) « C# Keywords », sur microsoft.com (consulté le ).
- « The Swift Programming Language : Redirect », sur swift.org (consulté le ).
- « The Swift Programming Language : Redirect », sur swift.org (consulté le ).
- « Built-in Types », sur Python documentation (consulté le ).
- (en) « ECMA-262 », sur Ecma International (consulté le ).
- (en) « OCaml - The core library », sur inria.fr (consulté le ).
- « Modifiable Data Structures », sur inria.fr (consulté le ).