Junior — Middle
What is the role of the 'by lazy' property in Kotlin and in what scenarios is its use appropriate?
sobes.tech AI
Answer from AI
In Kotlin, a property with the by lazy modifier is initialized lazily — that is, the value is computed only upon the first access to the property, not when the object is created. This is useful when initialization is resource-intensive or not always needed.
Example usage:
val heavyResource by lazy {
println("Initialization")
"Result"
}
fun main() {
println("Before access")
println(heavyResource) // Initialization occurs here
println(heavyResource) // Re-initialization does not occur
}
Use cases:
- Deferred initialization of objects that are not always needed.
- Performance optimization.
- Safe initialization in a multithreaded environment (by default,
lazyis thread-safe).