В компьютерном программировании , типы данных можно разделить на две категории: типы значений и ссылочные типы . Значение типа значения - это фактическое значение. Значение ссылочного типа - это ссылка на другое значение. [1] [2]
Классификация по языкам
Язык | Тип ценности | Тип ссылки |
---|---|---|
C ++ [3] | логические значения, символы, целые числа, числа с плавающей запятой, классы (включая строки, списки, карты, наборы, стеки, очереди), перечисления | ссылки, указатели |
Java [4] | логические значения, символы, целые числа, числа с плавающей запятой | массивы, классы (включая неизменяемые строки, списки, словари, наборы, стеки, очереди, перечисления), интерфейсы, нулевой указатель |
C # [5] | структуры (включая логические значения, символы, целые числа, числа с плавающей запятой, числа с фиксированной запятой, списки, словари, наборы, стеки, очереди, необязательные параметры), перечисления | классы (включая неизменяемые строки, массивы, кортежи, списки, словари, наборы, стеки, очереди), интерфейсы, указатели |
Свифт [6] [7] | структуры (включая логические значения, символы, целые числа, числа с плавающей запятой, числа с фиксированной запятой, изменяемые строки, кортежи, изменяемые массивы, изменяемые словари, изменяемые наборы), перечисления (включая дополнительные), а также определяемые пользователем структуры и перечисления, составляющие другие типы значений. | функции, замыкания, классы |
Python [8] | классы (включая неизменяемые логические значения, неизменяемые целые числа, неизменяемые числа с плавающей запятой, неизменяемые комплексные числа, неизменяемые строки, байтовые строки, неизменяемые байтовые строки, неизменяемые кортежи, неизменяемые диапазоны, неизменяемые представления памяти, списки, словари, наборы, неизменяемые наборы, null указатель) | |
JavaScript [9] | неизменяемые логические значения, неизменяемые числа с плавающей запятой, неизменяемые символы, неизменяемые строки, неопределенные, прототипы (включая списки, нулевой указатель) | |
OCaml [10] [11] | неизменяемые символы, неизменяемые целые числа, неизменяемые числа с плавающей запятой, неизменяемые кортежи, неизменяемые перечисления (включая неизменяемые единицы, неизменяемые логические значения, неизменяемые списки, неизменяемые опции), неизменяемые исключения, неизменяемые строки форматирования | массивы, неизменяемые строки, байтовые строки, словари (включая указатели) |
Бокс и распаковка
Языки программирования, которые различают типы значений и ссылочные типы, обычно предлагают механизм, называемый боксом , для обертывания некоторых или всех их типов значений в ссылочные типы. Это позволяет использовать типы значений в контекстах, ожидающих ссылочных типов. Обратный процесс (чтобы развернуть тип значения) известен как распаковка .
Смотрите также
Рекомендации
- ^ Браун, Эрик Э. (2006). Windows Forms в действии . Остров Шелтер, Нью-Йорк: Мэннинг. п. 703. ISBN. 978-1-932-39465-8.
- ^ Стивенс, Род (2014). Справочник программиста C # 5.0 . Индианаполис, Индиана: John Wiley & Sons. п. 57. ISBN 978-1-118-84728-2.
- ^ «Типа - cppreference.com» . en.cppreference.com .
- ^ «Глава 4. Типы, значения и переменные» . docs.oracle.com .
- ^ «Ключевые слова C #» . docs.microsoft.com .
- ^ «Структуры и классы - язык программирования Swift (Swift 5.2)» . docs.swift.org .
- ^ «Замыкания - язык программирования Swift (Swift 5.2)» . docs.swift.org .
- ^ «Встроенные типы - документация Python 3.8.2rc1» . docs.python.org .
- ^ «Спецификация языка ECMAScript® 2019» . www.ecma-international.org .
- ^ «Глава 24 Основная библиотека» . caml.inria.fr .
- ^ «Изменяемые структуры данных» . caml.inria.fr .