Avatar ·

Was macht das Schlüsselwort `by` in Kotlin? Erklären Sie anhand von Beispielen

Hallo zusammen! Ich habe vor kurzem angefangen, Kotlin zu lernen, bin von Java umgestiegen und bin auf eine für mich unverständliche Syntax gestoßen. Im Code meiner Kollegen sehe ich das Schlüsselwort `by`, kann aber seinen Zweck nicht verstehen. \n\nZum Beispiel habe ich diesen Code gesehen:\n\n```kotlin\nclass MyClass {\n var name: String by Delegates.observable("Initial") { prop, old, new ->\n println("$old -> $new")\n }\n}\n```\n\nOder so etwas:\n\n```kotlin\nclass Derived(base: Base) : Base by base\n```\n\nIch verstehe, dass es irgendwie mit Delegierung zu tun hat, aber mir ist nicht klar, wie das unter der Haube funktioniert. In Java hatten wir einfach Vererbung und Interfaces, aber hier ist irgendeine Magie.\n\nBitte erklären Sie, wofür `by` verwendet wird? In welchen Fällen sollte man es anwenden? Und wie funktioniert das auf Bytecode-Ebene? Ich wäre für einfache Beispiele dankbar, damit ein Anfänger es versteht.\n<<>>\n

Das Schlüsselwort `by` in Kotlin: zwei Hauptverwendungen

\n\n

\nDas Schlüsselwort by in Kotlin implementiert das Delegationsmuster (deleg