Beispiele für die Verwendung von run, let, apply, also und with in Kotlin: Wann verwendet man was?
Hallo Kollegen! Ich habe angefangen, Kotlin zu lernen, und komme mit den extension functions run, let, apply, also und with nicht klar. In der Dokumentation steht, dass sie helfen, saubereren Code zu schreiben, aber ich bin ständig verwirrt, welche ich wählen soll.
Zum Beispiel habe ich eine einfache Klasse User:
```kotlin
data class User(var name: String, var age: Int, var email: String)
```
Und ich möchte eine Instanz erstellen, ihre Felder ändern und dann in einem Log ausgeben. Ich habe verschiedene Varianten ausprobiert:
```kotlin
// Variante 1
val user = User("", 0, "")
user.name = "Ivan"
user.age = 25
user.email = "ivan@mail.ru"
println(user)
// Variante 2
val user = User("", 0, "").apply {
name = "Ivan"
age = 25
email = "ivan@mail.ru"
}
println(user)
```
Anscheinend funktioniert apply, aber wenn ich das Ergebnis einer Transformation zurückgeben muss, bin ich verloren. Zum Beispiel, wenn ich die Länge des Namens nach der Änderung erhalten möchte:
```kotlin
val length = User("", 0, "").let {
it.name = "Ivan"
it.name.length
}
```
Oder hier noch