0Pricing
Swift Academy · Урок

Как работает вывод типов

Узнайте, как Swift выводит типы из контекста.

«Как работает вывод типов» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Что такое вывод типов

Swift может определить тип значения из контекста выражения. Часто Вам не нужно указывать тип явно.

let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))

Вывод из литералов

Целочисленный литерал получает тип Int, десятичный литерал — тип Double, а литерал в кавычках — тип String.

let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))

Вывод из инициализатора

Когда Вы вызываете инициализатор, тип результата определяет тип переменной.

let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))

Вывод из возвращаемого значения функции

Переменная, которой присваивается результат вызова функции, получает тип, возвращаемый этой функцией.

func makeGreeting() -> String {
    return "Hi"
}
let g = makeGreeting()
print(type(of: g))

Вывод типов в коллекциях

Типы элементов массивов и словарей выводятся из значений, содержащихся внутри.

let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))

Двунаправленный вывод

Swift выполняет вывод в обоих направлениях: от значения к переменной и от объявленного типа обратно к литералу.

let x = 5            // Int inferred from literal
let y: Double = 5   // literal adapts to Double
print(type(of: x), type(of: y))

Вывод типов в выражениях

Компилятор определяет типы всего выражения одновременно, выбирая типы, при которых все операции допустимы.

let result = 2 + 3 * 4
print(result)
print(type(of: result))

Вывод уменьшает шум

Вывод типов делает код чище. Запись let names: [String] = [...] избыточна, если литерал уже указывает на String.

let names = ["Ada", "Bob", "Cleo"]
print(names.count)

Когда вывод не удаётся

Если компилятор не может определить единственный тип, возникает ошибка, и Вам нужно явно указать тип. Пустые коллекции — классический пример.

let empty: [Int] = []
print(empty.isEmpty)

Вывод выполняется статически

Вывод типов происходит во время компиляции. После определения тип фиксируется: Swift не является языком с динамической типизацией.

var n = 10
// n = "text" // would be a compile error
n = 20
print(n)

Вывод типов и производительность

Вывод типов не требует затрат во время выполнения. Компилятор определяет типы до создания двоичного файла, поэтому код с выведенными типами выполняется ровно так же быстро, как код с явно указанными типами.

let total = (1...100).reduce(0, +)
print(total)

Быстрая проверка

Проверьте, насколько хорошо Вы поняли вывод типов.

Итоги

Вывод типов позволяет Swift определять типы из литералов, инициализаторов, возвращаемых значений и окружающего контекста во время компиляции. Он уменьшает количество лишнего кода и не требует затрат во время выполнения, но не срабатывает, если нельзя определить единственный тип, например для пустых коллекций.

let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))

Часто задаваемые вопросы

Урок «Как работает вывод типов» бесплатный?

Да — полный текст урока «Как работает вывод типов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Как работает вывод типов»?

Узнайте, как Swift выводит типы из контекста. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Как работает вывод типов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как работает вывод типов
  2. Когда добавлять явные аннотации
  3. Вывод типов для литералов
  4. Вывод типов в замыканиях
← Назад к Swift Academy