0Pricing
Swift Academy · Урок

Значения параметров функций по умолчанию

Задавайте параметрам значения по умолчанию, чтобы упростить вызовы.

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

Что такое параметры по умолчанию

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

func greet(name: String = "Guest") {
    print("Hello, \(name)")
}
greet()
greet(name: "Ada")

Объявление значения по умолчанию

Присвойте значение по умолчанию после типа параметра с помощью =. Оно используется только тогда, когда вызывающий код не передаёт этот аргумент.

func power(base: Int, exponent: Int = 2) -> Int {
    var result = 1
    for _ in 0..<exponent { result *= base }
    return result
}
print(power(base: 5))
print(power(base: 5, exponent: 3))

Несколько значений по умолчанию

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

func makeBox(width: Int = 1, height: Int = 1) -> Int {
    return width * height
}
print(makeBox())
print(makeBox(width: 4))

Сочетание обязательных параметров и параметров по умолчанию

У обязательных параметров нет значения по умолчанию, а у остальных оно есть. Размещайте обязательные параметры первыми, чтобы вызывающий код мог удобно пропускать последние параметры со значениями по умолчанию.

func send(message: String, urgent: Bool = false) {
    print("\(urgent ? "URGENT: " : "")\(message)")
}
send(message: "Hi")
send(message: "Fire!", urgent: true)

Значения по умолчанию уменьшают число перегрузок

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

func connect(host: String, port: Int = 80) {
    print("\(host):\(port)")
}
connect(host: "example.com")
connect(host: "example.com", port: 8080)

Переопределение любого набора значений

Можно переопределить одно значение по умолчанию, сохранив остальные, если явно использовать метки аргументов.

func style(size: Int = 12, bold: Bool = false, italic: Bool = false) {
    print("\(size) bold:\(bold) italic:\(italic)")
}
style(bold: true)

Значения по умолчанию могут быть выражениями

Значением по умолчанию может быть любое выражение подходящего типа, вычисляемое при отсутствии аргумента.

func now(stamp: Int = 1000 + 1) {
    print(stamp)
}
now()
now(stamp: 5)

Значение по умолчанию для опционального параметра

Распространённый шаблон — параметр с опциональным значением, которому по умолчанию присваивается отсутствие значения. Это позволяет полностью не указывать его при вызове.

func log(_ text: String, tag: String? = nil) {
    print("[\(tag ?? "general")] \(text)")
}
log("Started")
log("Saved", tag: "db")

Сочетание со слиянием с отсутствующим значением

Параметры по умолчанию и ?? хорошо работают вместе: примите опциональное значение, а затем выполните объединение внутри тела функции.

func price(amount: Int? = nil) -> Int {
    return amount ?? 10
}
print(price())
print(price(amount: 25))

Значения по умолчанию в инициализаторах

Та же возможность работает в инициализаторах структур, позволяя создавать объекты с разумными значениями по умолчанию.

struct Settings {
    var volume: Int
    init(volume: Int = 50) {
        self.volume = volume
    }
}
print(Settings().volume)
print(Settings(volume: 80).volume)

Преимущество для удобства чтения

Параметры по умолчанию делают места вызова короче и показывают распространённый сценарий, сохраняя full-контроль при необходимости.

func repeatText(_ text: String, times: Int = 1) {
    for _ in 0..<times { print(text) }
}
repeatText("Hi")
repeatText("Yo", times: 2)

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

Проверьте параметры по умолчанию.

Итоги: значения по умолчанию в параметрах функций

Значения параметров по умолчанию позволяют не указывать аргументы при вызове. Объявляйте их с помощью = после типа, сочетайте с обязательными параметрами и используйте вместе с ?? или опциональными значениями для создания гибких интерфейсов.

func tax(amount: Int, rate: Int = 10) -> Int {
    return amount + amount * rate / 100
}
print(tax(amount: 100))

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

Урок «Значения параметров функций по умолчанию» бесплатный?

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

Чему я научусь в уроке «Значения параметров функций по умолчанию»?

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

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

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

Сколько времени занимает урок «Значения параметров функций по умолчанию»?

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

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

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

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

  1. Оператор объединения с nil
  2. Цепочки значений по умолчанию
  3. Значения параметров функций по умолчанию
  4. Индексы словаря со значениями по умолчанию
← Назад к Swift Academy