> Как реализовать функцию, которая возвращает nil или значение из словаря (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Revolut

Стек: iOS, Swift

> Пример ответа

В Swift для безопасного получения значения из словаря с возвратом nil вместо опционального типа можно использовать несколько подходов.

Самый простой способ — использовать сабскрипт словаря, который автоматически возвращает опциональное значение:

SWIFT
let dict = ["key1": "value1", "key2": "value2"]
let value = dict["key1"] // Optional("value1")
let missing = dict["key3"] // nil

Если нужно явно вернуть nil при отсутствии ключа, можно написать функцию-обёртку:

SWIFT
func getValue<T>(from dict: [String: T], forKey key: String) -> T? {
return dict[key]
}

Для более сложных сценариев, например, когда нужно вернуть значение по умолчанию вместо nil, используйте оператор ??:

SWIFT
let result = dict["key1"] ?? "default"

Если требуется кастомная логика (например, проверка типа или преобразование), реализуйте функцию с явной проверкой:

SWIFT
func safeValue<T>(from dict: [String: Any], forKey key: String) -> T? {
guard let value = dict[key] as? T else { return nil }
return value
}

В iOS-разработке часто используют расширения для удобства:

SWIFT
extension Dictionary {
func value<T>(forKey key: Key, as type: T.Type) -> T? {
return self[key] as? T
}
}

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

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

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