Junior — Middle
Mi a szerepe a 'by lazy' tulajdonságnak Kotlinban, és milyen helyzetekben érdemes használni?
sobes.tech MI
Válasz az MI-től
Kotlinban a by lazy módosítóval ellátott tulajdonság késleltetve inicializálódik, vagyis az érték csak az első hozzáféréskor kerül kiszámításra, nem az objektum létrehozásakor. Ez akkor hasznos, ha az inicializálás erőforrás-igényes vagy nem mindig szükséges.
Használati példa:
val heavyResource by lazy {
println("Inicializálás")
"Eredmény"
}
fun main() {
println("Mielőtt hozzáférnénk")
println(heavyResource) // Itt történik az inicializálás
println(heavyResource) // Nem történik újra inicializálás
}
Használati forgatókönyvek:
- Késleltetett inicializálás olyan objektumoknál, amelyek nem mindig szükségesek.
- Teljesítmény-optimalizálás.
- Biztonságos inicializálás több szálas környezetben (alapértelmezés szerint a
lazyszálbiztos).