Je veux apprendre Kotlin et je travaille à travers les exemples sur try.kotlinlang.orgEssayer de comprendre Kotlin Exemple
J'ai du mal à comprendre quelques exemples, en particulier l'exemple de la propriété Lazy: https://try.kotlinlang.org/#/Examples/Delegated%20properties/Lazy%20property/Lazy%20property.kt
/**
* Delegates.lazy() is a function that returns a delegate that implements a lazy property:
* the first call to get() executes the lambda expression passed to lazy() as an argument
* and remembers the result, subsequent calls to get() simply return the remembered result.
* If you want thread safety, use blockingLazy() instead: it guarantees that the values will
* be computed only in one thread, and that all threads will see the same value.
*/
class LazySample {
val lazy: String by lazy {
println("computed!")
"my lazy"
}
}
fun main(args: Array<String>) {
val sample = LazySample()
println("lazy = ${sample.lazy}")
println("lazy = ${sample.lazy}")
}
Sortie:
computed!
lazy = my lazy
lazy = my lazy
Je ne comprends pas ce qui se passe ici. (probablement parce que je ne suis pas vraiment familier avec lambdas)
Pourquoi println() n'est-il exécuté qu'une seule fois?
Je suis aussi confus au sujet de la ligne « mon paresseux » la chaîne n'est affectée à quoi que ce soit (String x = « mon paresseux ») ou utilisé dans un retour (retour « mon paresseux)
quelqu'un peut-il expliquer s'il vous plaît? :)