Ответ
Строгая типизация (strong typing) — это свойство языка программирования, при котором тип переменной фиксируется и проверяется на этапе компиляции. Язык не позволяет выполнять операции между несовместимыми типами без явного приведения.
Ключевые характеристики:
- Контроль типов на этапе компиляции. Ошибки несоответствия типов обнаруживаются до запуска программы.
- Отсутствие неявных, потенциально опасных преобразований. Например, целое число не будет автоматически преобразовано в строку.
- Повышение надежности и предсказуемости кода.
Пример в Swift:
var count: Int = 10
// count = "десять" // Ошибка компиляции: Cannot assign value of type 'String' to type 'Int'
let result = count + 5.5 // Ошибка компиляции: Binary operator '+' cannot be applied to operands of type 'Int' and 'Double'
// Требуется явное приведение:
let correctResult = Double(count) + 5.5
Swift — строго типизированный язык с выводом типов (type inference). Компилятор может определить тип из контекста, но после этого тип становится фиксированным и проверяется строго.
let message = "Hello" // Компилятор выводит тип String
// message = 42 // Ошибка: Нельзя присвоить Int переменной типа String.
Противоположность — слабая типизация (например, JavaScript), где типы могут неявно преобразовываться во время выполнения.