Que fait le mot-clé `by` en Kotlin ? Expliquez avec des exemples
Bonjour à tous ! J'ai récemment commencé à apprendre Kotlin, je viens de Java, et je suis tombé sur une syntaxe que je ne comprends pas. Je rencontre dans le code de mes collègues le mot-clé `by`, mais je n'arrive pas à comprendre son utilité. \n\nPar exemple, j'ai vu ce code :\n\n```kotlin\nclass MyClass {\n var name: String by Delegates.observable("Initial") { prop, old, new ->\n println("$old -> $new")\n }\n}\n```\n\nOu encore ceci :\n\n```kotlin\nclass Derived(base: Base) : Base by base\n```\n\nJe comprends que cela a un rapport avec la délégation, mais je ne vois pas comment cela fonctionne sous le capot. En Java, on avait simplement l'héritage et les interfaces, mais ici c'est une sorte de magie.\n\nExpliquez, s'il vous plaît, à quoi sert `by` ? Dans quels cas l'utiliser ? Et comment cela fonctionne-t-il au niveau du bytecode ? Je serais reconnaissant pour des exemples simples pour comprendre en tant que débutant.\n<<>>\n
Le mot-clé `by` en Kotlin : deux utilisations principales
\n\n\nLe mot-clé by en Kotlin implémente le pattern de délégation (deleg