apply und also
Konfigurieren Sie Objekte und führen Sie Seiteneffekte aus
apply und also ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Objekte konfigurieren
apply und also sind Scope-Funktionen, die statt des Lambda-Ergebnisses das Objekt selbst zurückgeben. Dadurch eignen sie sich hervorragend zum Konfigurieren und Verketten.
Die apply-Funktion
apply führt einen Block mit dem Objekt als this aus und gibt das Objekt zurück. Sie ist das klassische Werkzeug, um ein Objekt nach seiner Erstellung zu initialisieren.
fun main() {
val builder = StringBuilder().apply {
append("Hello")
append(", ")
append("World")
}
println(builder.toString())
}Warum apply das Objekt zurückgibt
Da apply den Receiver zurückgibt, können Sie das konfigurierte Objekt direkt einer Variablen zuweisen.
data class Person(var name: String = "", var age: Int = 0)
fun main() {
val p = Person().apply {
name = "Alice"
age = 30
}
println(p)
}apply verwendet this
Innerhalb von apply ist das Objekt der Receiver. Daher greifen Sie ohne Präfix direkt auf seine Eigenschaften zu.
data class Config(var host: String = "", var port: Int = 0)
fun main() {
val config = Config().apply {
host = "localhost"
port = 8080
}
println("${config.host}:${config.port}")
}Die also-Funktion
also führt einen Block mit dem Objekt als it aus und gibt das Objekt zurück. Die Funktion wird für Seiteneffekte wie Protokollierung oder Validierung verwendet, die das Objekt nicht verändern.
fun main() {
val numbers = mutableListOf(1, 2, 3)
numbers
.also { println("Before: $it") }
.add(4)
println("After: $numbers")
}also verwendet it
Da also das Objekt als it bereitstellt, ist die Funktion praktisch, wenn Sie weiterhin auf das äußere this verweisen oder die Referenz einfach explizit halten möchten.
fun main() {
val value = 42
.also { println("Logging value: $it") }
println(value)
}apply und also
Der Unterschied entspricht dem zwischen run und let:
applyverwendetthisund eignet sich am besten zum Konfigurieren von Eigenschaften.alsoverwendetitund eignet sich am besten für Seiteneffekte am Objekt.
Beide geben das ursprüngliche Objekt zurück.
data class Box(var size: Int = 0)
fun main() {
val box = Box()
.apply { size = 5 }
.also { println("Created box with size ${it.size}") }
println(box)
}apply und also verketten
Da beide das Objekt zurückgeben, können Sie sie verketten, um zuerst eine Konfiguration vorzunehmen und anschließend Seiteneffekte in einer übersichtlichen Pipeline auszuführen.
data class Account(var owner: String = "", var balance: Int = 0)
fun main() {
val account = Account()
.apply { owner = "Sam" }
.apply { balance = 100 }
.also { println("New account: $it") }
println(account.balance)
}also für Validierungen
Verwenden Sie also, um mitten in einer Kette eine Prüfung einzufügen, ohne den Ablauf zu unterbrechen.
fun main() {
val result = listOf(1, 2, 3, 4)
.filter { it % 2 == 0 }
.also { check(it.isNotEmpty()) { "No even numbers" } }
println(result)
}Die Rückgabe des Objekts ermöglicht Pipelines
Die gemeinsame Eigenschaft von apply und also besteht darin, dass sie eine Kette nie unterbrechen, weil sie immer dasselbe Objekt zurückgeben, mit dem Sie begonnen haben.
fun main() {
val text = StringBuilder()
.apply { append("a") }
.also { it.append("b") }
.apply { append("c") }
println(text)
}apply oder also auswählen
Verwenden Sie apply, wenn Sie ein Objekt initialisieren oder mithilfe seiner eigenen Member verändern. Verwenden Sie also, wenn Sie eine Aktion ausführen, die das Objekt verwendet, es aber nicht konfiguriert, etwa Protokollierung, Debugging oder Validierung.
Kurzer Check
Welchen Wert geben apply und also zurück?
Zusammenfassung
Sie haben die beiden Scope-Funktionen kennengelernt, die ein Objekt zurückgeben:
applyverwendetthiszum Konfigurieren eines Objekts.alsoverwendetitfür Seiteneffekte an einem Objekt.
Beide geben das Objekt zurück und ermöglichen übersichtliche Ketten. Als Nächstes gruppieren Sie Operationen mit with.
Häufig gestellte Fragen
Ist die Lektion „apply und also“ kostenlos?
Ja — der vollständige Text von „apply und also“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „apply und also“?
Konfigurieren Sie Objekte und führen Sie Seiteneffekte aus Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „apply und also“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- let und run
- apply und also
- with
- Die richtige Funktion auswählen