Значеннєвий тип і посилальний тип
Перейти до навігації
Перейти до пошуку
В програмуванні, типи даних можна розподілити на дві категорії: значеннєвий тип (також тип-значення, англ. value type) і посилальний тип (також тип-посилання, англ. reference type). Величина значеннєвого типу зберігає фактичне значення. Значенням посилального типу є посилання на якесь значення.[1][2]
Мова | Значеннєвий тип | Посилальний тип |
---|---|---|
C++[3] | booleans, characters, integer numbers, floating-point numbers, classes (включаючи strings, lists, maps, sets, stacks, queues), enumerations | references, pointers |
Java[4] | booleans, characters, integer numbers, floating-point numbers | arrays, classes (включаючи immutable strings, lists, dictionaries, sets, stacks, queues, enumerations), interfaces, null pointer |
C#[5] | 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[6][7] | 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[8] | 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[9] | immutable booleans, immutable floating-point numbers, immutable symbols, immutable strings, undefined, prototypes (включаючи lists, null pointer) | |
OCaml[10][11] | 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) |
Мови програмування, які відокремлюють значеннєві типи і посилальні типи, зазвичай пропонують механізм під назвою пакування (англ. boxing), для обгортання деяких або усіх значеннєвих типів у посилальні. Це дозволяє використовувати значеннєві типи у тих контекстах, де очікуються посилальні типи. Зворотний процес, для розгортання значеннєвого типу, називається розпакуванням (англ. unboxing).
- ↑ Brown, Erik E. (2006). Windows Forms in Action. Shelter Island, New York: Manning. с. 703. ISBN 978-1-932-39465-8. Архів оригіналу за 16 серпня 2018. Процитовано 8 квітня 2020.
- ↑ Stephens, Rod (2014). C# 5.0 Programmer's Reference. Indianapolis, Indiana: John Wiley & Sons. с. 57. ISBN 978-1-118-84728-2. Архів оригіналу за 16 серпня 2018. Процитовано 8 квітня 2020.
- ↑ Type - cppreference.com. en.cppreference.com. Архів оригіналу за 13 листопада 2020. Процитовано 8 квітня 2020.
- ↑ Chapter 4. Types, Values, and Variables. docs.oracle.com. Архів оригіналу за 29 серпня 2020. Процитовано 8 квітня 2020.
- ↑ C# Keywords. docs.microsoft.com. Архів оригіналу за 26 листопада 2020. Процитовано 8 квітня 2020.
- ↑ Structures and Classes — The Swift Programming Language (Swift 5.2). docs.swift.org. Архів оригіналу за 11 грудня 2020. Процитовано 8 квітня 2020.
- ↑ Closures — The Swift Programming Language (Swift 5.2). docs.swift.org. Архів оригіналу за 6 лютого 2021. Процитовано 8 квітня 2020.
- ↑ Built-in Types — Python 3.8.2rc1 documentation. docs.python.org. Архів оригіналу за 14 червня 2020. Процитовано 8 квітня 2020.
- ↑ ECMAScript® 2019 Language Specification. www.ecma-international.org. Архів оригіналу за 13 січня 2021. Процитовано 8 квітня 2020.
- ↑ Chapter 24 The core library. caml.inria.fr. Архів оригіналу за 2 липня 2020. Процитовано 8 квітня 2020.
- ↑ Modifiable Data Structures. caml.inria.fr. Архів оригіналу за 22 липня 2020. Процитовано 8 квітня 2020.
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до прийнятих рекомендацій. |