Какие основные типы данных существуют в Swift?

Ответ

Типы данных в Swift делятся на простые (скалярные), коллекции и специальные.

1. Простые типы (Value Types):

  • Целые числа: Int, Int8, Int16, Int32, Int64, UInt (беззнаковый).
  • Числа с плавающей точкой: Float (32-bit), Double (64-bit, предпочтительный).
  • Логический тип: Bool (true/false).
  • Строки и символы: String, Character.

2. Типы-коллекции (Value Types):

  • Массив (Array<Element>): Упорядоченная коллекция. [Int]
  • Множество (Set<Element>): Неупорядоченная коллекция уникальных элементов. Set<String>
  • Словарь (Dictionary<Key, Value>): Коллекция пар ключ-значение. [String: Int]

3. Специальные типы:

  • Кортеж (Tuple): Группировка нескольких значений в один составной тип.
    let httpStatus: (Int, String) = (404, "Not Found")
    let namedStatus = (code: 200, message: "OK")
  • Опциональный тип (Optional<Wrapped>): Обёртка для значения, которое может отсутствовать (nil). Int? — ключевая особенность Swift для безопасности.
    var optionalNumber: Int? = 5
    optionalNumber = nil // Допустимо
  • Типы-значения (struct, enum) и типы-ссылки (class, closure, actor) — определяются пользователем.

Примеры объявления:

let age: Int = 30          // Целое число
let temperature: Double = 36.6 // Число с плавающей точкой
let name: String = "Alice" // Строка
let isAvailable: Bool = true // Булево значение
let scores: [Int] = [95, 90, 85] // Массив
let uniqueIDs: Set<String> = ["A1", "B2"] // Множество
let userInfo: [String: Any] = ["name": "Bob", "age": 25] // Словарь

Ответ 18+ 🔞

А, ну вот, смотри, тут про типы данных в Swift, да? Ну, это, блядь, как в жизни — всё делится на простые штуки, на кучки всякого барахла и на какую-то специальную, ёбта, хуйню, которую сам придумываешь.

1. Простые типы (Value Types), они же скалярные, блядь:

  • Целые числа: Тут всё понятно, Int, Int8, Int16... Ага, и UInt — это типа беззнаковый, то есть только плюс, никакого минуса, оптимист, сука.
  • Числа с плавающей точкой: Float (32-битный, так себе) и Double (64-битный, предпочтительный, чтоб наверняка, блядь).
  • Логический тип: Bool — либо да, либо нет, либо true, либо false. Никаких "может быть", ёпта.
  • Строки и символы: String — это типа текст, а Character — одна буковка. Всё, пиздец.

2. Типы-коллекции (Value Types):

  • Массив (Array<Element>): Упорядоченная куча. Как очередь в магазине, блядь. [Int]
  • Множество (Set<Element>): Неупорядоченная куча, но там всё уникальное. Как носки в стирке, только без пары. Set<String>
  • Словарь (Dictionary<Key, Value>): Коллекция пар ключ-значение. Типа, "имя" -> "Вася". [String: Int]

3. Специальные типы, вот где начинается магия, блядь:

  • Кортеж (Tuple): Сгруппировал несколько значений в одну кучу и пошёл. Быстро и удобно, в рот меня чих-пых.
    let httpStatus: (Int, String) = (404, "Not Found") // Ошибка, сука!
    let namedStatus = (code: 200, message: "OK") // А тут уже с именами, красота.
  • Опциональный тип (Optional<Wrapped>): Вот это, блядь, главная фишка Swift, чтобы не вылетать вхлам. Обёртка, внутри которой может быть значение, а может и nil. Int? — это типа "число, но, может, и нет, хз".
    var optionalNumber: Int? = 5 // Есть число!
    optionalNumber = nil // А теперь нет, просрали.
  • Типы-значения (struct, enum) и типы-ссылки (class, closure, actor) — это уже твоё творчество, блядь. Сам лепишь, как хочешь.

Примеры объявления, чтоб вообще всё стало ясно:

let age: Int = 30          // Целое число, лет тебе, старичок
let temperature: Double = 36.6 // Температура, всё в норме, блядь
let name: String = "Alice" // Имя, привет, Алиса
let isAvailable: Bool = true // Доступен? Да, блядь, доступен!
let scores: [Int] = [95, 90, 85] // Оценки, молодец, отличник
let uniqueIDs: Set<String> = ["A1", "B2"] // Уникальные айдишники, без повторов
let userInfo: [String: Any] = ["name": "Bob", "age": 25] // Инфа о юзере, словарик

Вот и вся система, блядь. Сначала кажется, что овердохуища всего, а потом привыкаешь. Главное — опционалы не проебить, а то будет nil и пиздец.