Низший тип (Un[onw mnh)
Низший тип (нулевой тип, пустой тип) — объект, использующийся в некоторых теориях типов и языках программирования, соответствующий типу без значений. Стандартное математическое обозначение — верхний галс[англ.] (). В рамках соответствия Карри — Ховарда низший тип соответствует логической ложной формуле.
В системах, предусматривающих подтипы, низший тип является подтипом всех типов[1]; при этом обратное может быть неверно — в некоторых вариантах подтип всех типов не обязательно будет низшим. В некоторых системах типов вводится двойственное понятие — высший тип, охватывающий все возможные значения в системе.
В программировании низший тип в качестве возвращаемого значения функции часто используется чтобы показать расходимость функции: когда функция не возвращает никаких результатов вызывающей стороне. Поддерживаются в Haskell (начиная с версии 2010), Common Lisp (символ NIL
), Scala (Nothing
; также используется для ковариантности параметризованных типов), Rust (экспериментальный тип данных, обозначаемый как !
; присутствует в сигнатуре функций, которые гарантированно не возвращают значений, например, при вызове panic!()
или бесконечном цикле, и как возвращаемый тип для операторов потока управления, таких как break
и return)
[2], Ceylon (Nothing)
[3], Julia (Union{})
[4], TypeScript (never
)[5][6], JavaScript с аннотациями Closure Compiler[англ.] (!Null
), PHP (never
), Python (typing.NoReturn
или typing.Never
)[7], Kotlin (Nothing)
[8], Elm (Never
)[9], D (noreturn
)[10].
Примечания
[править | править код]- ↑ Пирс Бенджамин С. (1997). "Ограниченная количественная оценка с низшим пределом". CiteSeerX 10.1.1.17.9230.
{{cite journal}}
: Cite journal требует|journal=
(справка) - ↑ Примитивный тип never . Документация стандартной библиотеки Rust. Дата обращения: 24 сентября 2020. Архивировано 23 сентября 2020 года.
- ↑ Глава 3. Система типов — 3.2.5. Низший тип . Язык программирования Ceylon. Red Hat, Inc.. Дата обращения: 19 февраля 2017. Архивировано 20 февраля 2017 года.
- ↑ Основы языка программирования Julia, Архивировано из оригинала 25 июля 2021, Дата обращения: 16 июля 2021
- ↑ The never type, TypeScript 2.0 release notes, Microsoft, 2016-10-06, Архивировано из оригинала 30 октября 2019, Дата обращения: 1 ноября 2019
- ↑ The never type, TypeScript 2.0 release notes, source code, Microsoft, 2016-10-06, Архивировано из оригинала 16 июля 2021, Дата обращения: 1 ноября 2019
- ↑ typing.NoReturn, typing — Поддержка подсказок типов, документация языка Python, Фонд программного обеспечения Python, Архивировано из оригинала 21 февраля 2020, Дата обращения: 25 февраля 2020
- ↑ Nothing, Архивировано из оригинала 25 февраля 2020, Дата обращения: 15 мая 2020
- ↑ Never, Архивировано из оригинала 10 апреля 2021, Дата обращения: 25 марта 2021
- ↑ Types - D Programming Language . dlang.org. Дата обращения: 31 июля 2022. Архивировано 15 июля 2022 года.
Ссылки
[править | править код]- Пирс Б. Типы в языках программирования. — Добросвет, 2012. — 680 с. — ISBN 978-5-7913-0082-9.