Что такое тип? - PullRequest
       25

Что такое тип?

9 голосов
/ 05 августа 2009

Новый вопрос / +: ...
В программировании мы встречаем слово Type достаточно часто.

Что это должно означать, чтобы передать, и когда это не должно использоваться?

Ответы [ 13 ]

9 голосов
/ 05 августа 2009

Я всегда учился как «Тип определяет, как данные хранятся в памяти и какие действия над ними можно выполнить».

Если вы думаете о классе с локальными переменными и методами, это имеет смысл. Переменные экземпляра определяют способ распределения памяти для новых экземпляров, а открытые методы описывают контракт действий, которые могут быть выполнены для экземпляров этого класса.

7 голосов
/ 05 августа 2009

Есть много способов ответить на этот вопрос, и каждый из них применим к некоторым моделям, но не к другим. Мое любимое общее определение состоит в том, что тип - это некоторое подмножество всех значений в мире (например, тип «натуральные числа» включает в себя значение 1, но не значение «Переполнение стека»). Типы могут явно перекрываться (1 может быть целым или положительным целым типом). Это определение дает хорошее интуитивное представление о «больших» (более инклюзивных) и «меньших» типах, что помогает понять ковариацию и контравариантность.

5 голосов
/ 05 августа 2009

Данные - это не что иное, как набор битов. Тип сообщает вам, что эти биты представляют как int, char, Boolean.

3 голосов
/ 05 августа 2009

Вот лучшее определение, которое я когда-либо встречал:

Доказательство - это программа. Формула, которую он доказывает, это тип для программы.

Здесь «программа» подразумевается очень широко и относится к любой конструкции в вашем языке программирования, которая может обосновываться на этом языке (будь то неприводимое значение, выражение, функция или целое приложение).

Некоторые языки программирования, так называемые «статически типизированные» языки, включают вспомогательный язык (называемый системой типов) для создания утверждений о программах. Утверждения, что, если программа правильная, всегда должны быть верными. Таким образом, в некотором смысле типы также являются программами, интерпретируемыми другой программой, называемой средством проверки типов. Некоторые системы типов требуют, чтобы программист делал явные утверждения о типах, тогда как средство проверки типов гарантирует, что ваши программы соответствуют этим операторам, и выдает ошибку, если они этого не делают. Другие системы пытаются автоматически определить наиболее общий тип для ваших программ и выдают ошибку, если такой тип не может быть выведен.

3 голосов
/ 05 августа 2009

Неформально тип используется для обозначения категории объектов с похожими характеристиками, например, «Стул» для типа мебели. Стул, как правило, для сидения, и поэтому имеет ровное горизонтальное пространство. Стулья часто имеют четыре ножки, но не всегда. Стул имеет определенный цвет или набор цветов. и т.д.

Итак, если я скажу вам, что у меня есть стул, вы много знаете об объекте, о котором я говорю.

Если продвинуться дальше по аналогии, у стульев есть функциональность (можно сидеть на стуле) и свойства (количество ножек, цвет). Кроме того, можно также назвать общие конфигурации свойств стула подтипом (или подклассом), например, Табурет - это трехногий стул без спинки.

Типы - это сокращение для описания компьютерных объектов, так что не нужно указывать все свойства и действия (методы) для каждого отдельного объекта. Объявив, что определенный объект имеет определенный тип, программисты (и компьютер) предполагают общность, основанную на типе, что делает процесс программирования дешевле / лучше / быстрее.

1 голос
/ 05 августа 2009

«Тип» предназначен для передачи аромата объекта; его пределы и ожидаемые значения по умолчанию.

Тип int означает, что его число и во многих языках по умолчанию равно нулю. string Type, напротив, представляет собой набор символов, которые могут напоминать int , но не обязательно; по умолчанию используется пустая строка или нулевое значение в зависимости от языка.

«Тип» также часто используется для ссылки на пользовательский объект или класс, а не только на int , bool , string и т. Д. Есть ли случай, когда вы не должны использовать «Тип»?

1 голос
/ 05 августа 2009

@ диво сказал это достаточно хорошо, но я постараюсь подвести итог:

Тип - это набор данных (он может быть даже составлен из других типов), которому дано значение семантическое . Это важно - тип - это определение семантического значения. Этот тип отличается от этого типа , потому что я так говорю . Семантическое значение типа определяет, как вы можете его использовать, какие операции вы можете выполнять с ним и тому подобное.

В своей самой низкой форме тип - это просто кодировка для группировки битов. Например, целое число (int во многих языках) составляет (обычно в наши дни) 32 бита данных, закодированных в форме twos-compment . float - это 32 или 64 бита, закодированные в арифметическом стандарте IEEE с плавающей запятой . char с - это 8 или 16 (чаще 16) битов, закодированных в ASCII или UTF8 / UTF16. Строка - это массив символов. И так далее.

Сложный тип (о котором большинство людей думают, когда они видят / слышат слово «тип») состоит из одного или нескольких других типов. В большинстве языков тип может быть определен как псевдоним другого типа, или как структура данных или класс.

1 голос
/ 05 августа 2009

С точки зрения типов данных, это формат, в котором данные хранятся в памяти и передает операции, которые могут быть выполнены с данными.

Например, «целое число без знака» - это тип данных, который может хранить только положительные целые действительные числа (т. Е. 0, 1, 2, 3 ...), обычно вплоть до определенного числа, из-за того, что память ограничено целое число без знака ограничено.

1 голос
/ 05 августа 2009

Типы данных. например int, bool, float, char, string (имена на разных языках будут разными).

Тип - это сокращение от Тип данных. Их можно разделить на 2 основные категории: собственные и пользовательские. Тип данных описывает, какой тип данных может храниться в переменной, и какие операции вы можете выполнять с этими данными.

родные типы данных уже определены в языке. Часто они включают в себя целое число, число с плавающей точкой, логическое значение, символ, строку или что-то похожее. Разные языки будут иметь разные наборы собственных типов данных. Например, некоторые языки не имеют логического значения. Другие языки не имеют собственного типа строки.

Пользовательские типы данных - это те, которые вы определяете. Вы можете определить тип данных для хранения любого вида информации и операторов, которые воздействуют на эти значения. Их можно считать классами или структурами.

0 голосов
/ 05 августа 2009

Типы появились из того, как данные хранятся в памяти. Целое число, хранящееся в памяти, выглядит как обычное число: x = 6 переводится в память как 00000110. Но как выглядит 6.5? Как насчет письма x?

Поскольку мы можем хранить вещи только в виде серии единиц или нулей, нам нужно знать, что означают нули и единицы, именно здесь вводятся типы. В противном случае я мог бы сохранить число типа x = 66 и вернуть букву B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...