Являются ли ленивые вары в Свифте более одного раза? У меня создалось впечатление, что они заменили:
if (instanceVariable) {
return instanceVariable;
}
// set up variable that has not been initialized
Парадигма из Objective-C (ленивая инстанция).
Это то, что они делают? Как правило, только один раз при первом запросе приложения запрашивает переменную, а затем просто возвращает то, что было рассчитано?
Или он получает вызов каждый раз, как нормальное вычисляемое свойство?
Причина, по которой я спрашиваю, заключается в том, что в основном я хочу, чтобы в Swift вычислялось свойство, которое может обращаться к другим переменным экземпляра. Скажем, у меня есть переменная, называемая "fullName", и она просто объединяет firstName
и lastName
. Как мне это сделать в Свифт? Кажется, что ленивые вары - единственный способ пойти, как в нормальных вычислимых варах (не ленивый), я не могу получить доступ к другим переменным экземпляра.
Итак, в основном:
Неужели ленивые вары в Свифте называются более одного раза? Если да, как мне создать вычисленную переменную, которая может обращаться к переменным экземпляра? Если нет, если я хочу, чтобы переменная была вычислена один раз по соображениям производительности, как мне это сделать?