Какие целочисленные типы в Swift имеют размер, зависящий от архитектуры процессора (машинного слова)?

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

Ответ

В Swift размер типов Int и UInt равен размеру машинного слова на текущей платформе:

  • 64 бита на 64-битных системах.
  • 32 бита на 32-битных системах.

Это делает их оптимальными для работы с индексами коллекций, размерами памяти и другими системно-зависимыми значениями. Все остальные целочисленные типы (Int8, UInt16, Int32 и т.д.) имеют строго фиксированный размер.

Пример:

// Размер зависит от архитектуры
let platformInt: Int = 42
let platformUInt: UInt = 100

// Узнаем размер в битах для текущей системы
let bits = MemoryLayout<Int>.size * 8
print("Размер Int на этой системе: (bits) бит") // Например, 64