Назад к вопросам
Junior — Middle
87
Какова основная задача ленивой инициализации и в каких ситуациях она применяется?
Компании, где спрашивали
GreenData
Ответ от нейросети
sobes.tech AI
Ленивая инициализация (lazy initialization) — это отложенное создание или инициализация объекта или ресурса до момента его первого использования. Основная задача — оптимизировать использование ресурсов и повысить производительность, избегая затрат на создание объектов, которые могут не понадобиться.
Применяется в ситуациях, когда:
- Инициализация ресурсоёмкая (например, загрузка данных из сети или базы данных).
- Объект может не понадобиться в ходе работы программы.
- Нужно ускорить старт приложения, откладывая тяжелые операции.
В Swift для ленивой инициализации используется ключевое слово lazy:
class DataManager {
lazy var data = loadData()
func loadData() -> [String] {
print("Загрузка данных")
return ["item1", "item2"]
}
}
let manager = DataManager() // data еще не загружены
print(manager.data) // здесь происходит загрузка данных
Таким образом, data инициализируется только при первом обращении.