I lazy vars in Swift vengono calcolati più di una volta? Ho avuto l'impressione che abbiano sostituito il:I lazy vars in Swift vengono calcolati più di una volta?
if (instanceVariable) {
return instanceVariable;
}
// set up variable that has not been initialized
Paradigma da Objective-C (lanciando l'istanza).
È quello che fanno? Fondamentalmente chiamato solo una volta la prima volta che l'app chiede la variabile, quindi restituisce solo ciò che è stato calcolato?
Oppure viene chiamato ogni volta come una normale proprietà calcolata?
Il motivo che chiedo è perché fondamentalmente voglio una proprietà calcolata in Swift che possa accedere ad altre variabili di istanza. Dire che ho una variabile chiamata "fullName" e si concatena solo firstName
e lastName
. Come lo farei in Swift? Sembra che le lazy vars siano l'unica strada da percorrere, dato che nei normali vali calcolati (non pigri) non riesco ad accedere ad altre variabili di istanza.
Quindi, fondamentalmente:
fare Vars pigri a Swift ottenere chiamato più di una volta? In tal caso, come posso creare una variabile calcolata in grado di accedere alle variabili di istanza? In caso contrario, se desidero che una variabile venga calcolata una sola volta per motivi di prestazioni, come posso fare?
1. Che cosa si intende se una proprietà calcolata non è supportata da una proprietà memorizzata? FullName non è supportato da firstName, lastName? 2. Oltre a diventare pigri una volta intiailizzati, è la differenza maggiore tra i due che: per pigro se si imposta * il lazyFullName allora si imposta semplicemente ... ma per il computedLazyFullName se lo si imposta allora è necessario un qualche meccanismo per aggiornare le proprietà firstName, lastName * memorizzate *? – Honey