Тип данных

Оригинальное название: data type

Коротко

Характеристика значения, которая определяет, как оно хранится в памяти, какие операции к нему применимы и какие значения вообще допустимы.

Что такое «Тип данных»

Компьютер хранит всё в виде битов, и без типа одна и та же последовательность может оказаться числом, буквой или адресом. Тип подсказывает языку, как читать эти биты и что с ними можно делать: числа складывают, строки склеивают, у объектов вызывают методы. Попытка разделить дату на слово либо даст ошибку, либо — в нестрогих языках — неожиданный результат.

Типы делят на простые и составные. Простые — целое число, дробное число, строка, логическое значение. Составные собираются из простых: массивы, объекты, перечисления. В PHP, например, есть int, float, string, bool, array, object и null.

Статическая и динамическая типизация

В языках со статической типизацией (Java, Go, TypeScript) тип переменной известен до запуска, и компилятор ловит несоответствия заранее. В динамических (PHP, JavaScript, Python) тип выясняется во время работы. Это удобно для быстрых правок, но ошибка вида «пришла строка вместо числа» всплывёт только тогда, когда код дойдёт до этого места. Второе измерение — строгость: насколько охотно язык сам приводит один тип к другому.

Пример: строгий режим в PHP

<?php
declare(strict_types=1);

function add(int $a, int $b): int {
    return $a + $b;
}

echo add(5, 3);   // 8
echo add("5", 3); // TypeError: строка вместо int

Без строки declare(strict_types=1) PHP молча превратил бы «5» в число. В небольшом скрипте это удобно, а в обработке заказов скрывает ошибки во входных данных.

Типы в базе данных

Тип выбирают и для колонок таблицы. Цены хранят в DECIMAL, а не в FLOAT, чтобы не терять копейки на округлении. Даты — в DATE или DATETIME, а не строкой: так работают сортировка и выборка по периоду. Телефон, наоборот, лучше хранить строкой — ведущий ноль и плюс в начале числовой тип потеряет.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение