Junior — Middle
Can you name the types of delegates used in Kotlin?
sobes.tech AI
Answer from AI
In Kotlin, there are several types of delegates that simplify working with properties:
-
Standard delegates:
lazy— deferred initialization of a property upon first access.observable— allows tracking changes to the property's value.vetoable— similar to observable, but with the ability to reject changes.notNull— a property that must be initialized before first access, otherwise an exception is thrown.
-
Collection delegates: for example, delegates for storing values in a
Map. -
Custom delegates: you can implement the
ReadOnlyPropertyorReadWritePropertyinterfaces to create your own delegates.
Example of using lazy:
val lazyValue: String by lazy {
println("Calculating value")
"Hello"
}
fun main() {
println(lazyValue) // Value is calculated here
println(lazyValue) // Cached value is used
}