Что такое строгая типизация?

«Что такое строгая типизация?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Строгая типизация (strong typing) — это свойство языка программирования, при котором тип переменной фиксируется и проверяется на этапе компиляции. Язык не позволяет выполнять операции между несовместимыми типами без явного приведения.

Ключевые характеристики:

  1. Контроль типов на этапе компиляции. Ошибки несоответствия типов обнаруживаются до запуска программы.
  2. Отсутствие неявных, потенциально опасных преобразований. Например, целое число не будет автоматически преобразовано в строку.
  3. Повышение надежности и предсказуемости кода.

Пример в 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), где типы могут неявно преобразовываться во время выполнения.