> Как реализовать функцию, которая возвращает nil или значение из словаря (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Revolut
Стек: iOS, Swift
> Пример ответа
В Swift для безопасного получения значения из словаря с возвратом nil вместо опционального типа можно использовать несколько подходов.
Самый простой способ — использовать сабскрипт словаря, который автоматически возвращает опциональное значение:
SWIFTlet dict = ["key1": "value1", "key2": "value2"]let value = dict["key1"] // Optional("value1")let missing = dict["key3"] // nil
Если нужно явно вернуть nil при отсутствии ключа, можно написать функцию-обёртку:
SWIFTfunc getValue<T>(from dict: [String: T], forKey key: String) -> T? {return dict[key]}
Для более сложных сценариев, например, когда нужно вернуть значение по умолчанию вместо nil, используйте оператор ??:
SWIFTlet result = dict["key1"] ?? "default"
Если требуется кастомная логика (например, проверка типа или преобразование), реализуйте функцию с явной проверкой:
SWIFTfunc safeValue<T>(from dict: [String: Any], forKey key: String) -> T? {guard let value = dict[key] as? T else { return nil }return value}
В iOS-разработке часто используют расширения для удобства:
SWIFTextension Dictionary {func value<T>(forKey key: Key, as type: T.Type) -> T? {return self[key] as? T}}
Таким образом, стандартный сабскрипт словаря уже возвращает nil при отсутствии ключа, а дополнительные функции нужны только для специфических требований.
> Похожие задачи по mobile
Как оцениваете свой уровень разработчика
Какова временная сложность решения в нотации O
Какие подходы по обеспечению безопасности мобильного приложения и инфраструктуры применить
Что выведется в консоли при вызове двух одинаковых функций в протоколе с табличной диспетчеризацией
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью