Avatar ·

Wann man run, let, apply, also und with in Kotlin verwendet? Beispiele und Erklärung

Hallo zusammen! Ich habe gerade angefangen, Kotlin nach Java zu lernen, und die Scope-Funktionen run, let, apply, also und with haben mich sehr verwirrt. Ich habe die Dokumentation gelesen, verstehe aber immer noch nicht, wann ich welche verwenden soll. Zum Beispiel sehe ich oft diesen Code: ```kotlin val numbers = mutableListOf("one", "two", "three") numbers.let { println(it) } numbers.apply { add("four") } numbers.run { println("Size: $size") } ``` Aber warum kann ich nicht einfach `println(numbers)` oder `numbers.add("four")` schreiben? Was ist der Unterschied zwischen `let` und `apply`? Und wozu braucht man `also`? Außerdem habe ich versucht, ein Objekt mit Konfiguration zu initialisieren: ```kotlin val person = Person().apply { name = "John" age = 30 } ``` Das funktioniert, aber dasselbe kann man auch mit `with` machen: ```kotlin val person = with(Person()) { name = "John" age = 30 this } ``` Was ist der Unterschied? Und wann verwendet man `run` statt `apply`? Ich wäre dankbar für klare Regeln und Beispiele für jede Funktion.