Является ли Swift строго типизированным языком?

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

Ответ

Да, Swift — это язык со статической и строгой типизацией. Это означает:

  1. Проверка типов на этапе компиляции. Компилятор проверяет соответствие типов до запуска программы, что предотвращает множество ошибок времени выполнения.
  2. Нет неявных преобразований. Swift не выполняет автоматических преобразований между несовместимыми типами (например, Int в String или Int в Double).

Пример строгой типизации:

let number: Int = 42
let doubleNumber: Double = 3.14

// Ошибка компиляции: бинарный оператор '+' нельзя применить к операндам типов 'Int' и 'Double'
// let sum = number + doubleNumber

// Правильно: требуется явное приведение типа
let correctSum = Double(number) + doubleNumber // 45.14

Особенности системы типов Swift:

  • Вывод типов (Type Inference): Компилятор может сам определить тип переменной или константы на основе присваиваемого значения.
    let message = "Hello" // Тип `message` выводится как `String`
  • Безопасность: Строгая типизация — одна из основополагающих черт безопасности Swift, делающая код более предсказуемым и надежным.