В програмуванні, типи даних можна розподілити на дві категорії: значеннєвий тип (також тип-значення, ) і посилальний тип (також тип-посилання, ). Величина значеннєвого типу зберігає фактичне значення. Значенням посилального типу є посилання на якесь значення.

Класифікація за мовою Мова Значеннєвий тип Посилальний тип C++ booleans, characters, integer numbers, floating-point numbers, classes (включаючи strings, lists, maps, sets, stacks, queues), enumerations references, pointers Java booleans, characters, integer numbers, floating-point numbers arrays, classes (включаючи immutable strings, lists, dictionaries, sets, stacks, queues, enumerations), interfaces, null pointer C# structures (включаючи booleans, characters, integer numbers, floating-point numbers, fixed-point numbers, lists, dictionaries, sets, stacks, queues, optionals), enumerations classes (включаючи immutable strings, arrays, tuples, lists, dictionaries, sets, stacks, queues), interfaces, pointers Swift structures (включаючи booleans, characters, integer numbers, floating-point numbers, fixed-point numbers, immutable strings, tuples, lists, dictionaries, sets, stacks, queues), enumerations (включаючи optionals) functions, classes, interfaces Python classes (включаючи immutable booleans, immutable integer numbers, immutable floating-point numbers, immutable complex numbers, immutable strings, byte strings, immutable byte strings, immutable tuples, immutable ranges, immutable memory views, lists, dictionaries, sets, immutable sets, null pointer) JavaScript immutable booleans, immutable floating-point numbers, immutable symbols, immutable strings, undefined, prototypes (включаючи lists, null pointer) OCaml immutable characters, immutable integer numbers, immutable floating-point numbers, immutable tuples, immutable enumerations (включаючи immutable units, immutable booleans, immutable lists, immutable optionals), immutable exceptions, immutable formatting strings arrays, immutable strings, byte strings, dictionaries (включаючи pointers)

Пакування та розпакування

Мови програмування, які відокремлюють значеннєві типи і посилальні типи, зазвичай пропонують механізм під назвою пакування (), для обгортання деяких або усіх значеннєвих типів у посилальні. Це дозволяє використовувати значеннєві типи у тих контекстах, де очікуються посилальні типи. Зворотний процес, для розгортання значеннєвого типу, називається розпакуванням ().

Див. також Примітивний тип даних Складений тип даних

Примітки