Menu
CoddyTech

Оператор объединения с nil

Часть раздела Основы путешествия по Swift на Coddy. Урок 14 из 86.

Иногда нужно просто указать значение по умолчанию для опционала, если он равен nil, не записывая несколько строк кода. Оператор объединения с nil в Swift (??) делает именно это. Он извлекает значение из опционала, если оно есть, или возвращает значение по умолчанию, если опционал равен nil.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Поскольку nickname равно nil, оператор вместо этого возвращает "Guest". Если бы у nickname было значение, использовалось бы оно.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

Оператор объединения с nil идеально подходит для однострочных выражений, когда нужно запасное значение. Он лаконичнее, чем запись оператора if let, если нужно просто заменить nil значением по умолчанию. Если значение по умолчанию не является опциональным, результат тоже будет неопциональным, поэтому его можно использовать напрямую, без дополнительного извлечения значения.

challenge icon

Задание

Легко
Напиши функцию getDisplayName, которая принимает опциональный username и defaultName, а затем возвращает подходящее отображаемое имя с помощью оператора объединения с nil.

Если имя пользователя пустое (представлено пустой строкой ""), считай его равным nil и возвращай имя по умолчанию. В противном случае возвращай имя пользователя.

Параметры:

  • username (String): имя пользователя (пустая строка обозначает nil)
  • defaultName (String): запасное имя

Возвращает: имя пользователя, если оно не пустое, в противном случае — defaultName.

Подсказка: Внутри функции сохрани имя пользователя в переменной типа String?, а если имя пользователя равно "", присвой этой переменной значение nil с помощью простого if. Затем используй ??, чтобы указать запасное значение.

Попробуйте сами

func getDisplayName(username: String, defaultName: String) -> String {
    // Напишите здесь код
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Swift