Kotlin Academy · Lektion

Infix-Funktionen

Lesbare Funktionsaufrufe

Lektion 1 von 413 Schritte

Infix-Funktionen ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.

Was ist eine Infix-Funktion?

Eine Infix-Funktion kann ohne Punkt oder Klammern aufgerufen werden: a func b. Kennzeichnen Sie sie mit dem Schlüsselwort infix.

infix fun Int.times2(factor: Int) = this * factor

fun main() {
    println(3 times2 4)
}

Regeln für Infix-Funktionen

Eine Infix-Funktion muss eine Member- oder Erweiterungsfunktion sein, genau einen Parameter annehmen und darf weder vararg sein noch einen Standardwert haben.

infix fun Int.plusBy(other: Int) = this + other

fun main() {
    println(5 plusBy 7)
}

Integrierte Infix-Funktionen

Viele Standardfunktionen sind Infix-Funktionen: to (erstellt ein Pair), and, or, shl sowie until, downTo und step für Bereiche.

fun main() {
    val pair = "key" to 42
    println(pair)
    for (i in 1 until 4) print(i)
}

Ein Pair mit to erstellen

Die vertraute Map-Syntax "a" to 1 ist lediglich die Infix-Funktion to, die ein Pair zurückgibt.

fun main() {
    val map = mapOf(1 to "one", 2 to "two")
    println(map[2])
}

Infix als Member-Funktion

Infix-Funktionen können Member sein, sodass Sie flüssig lesbare Ausdrücke für Ihre Domäne schreiben können.

class Money(val cents: Int) {
    infix fun add(o: Money) = Money(cents + o.cents)
}

fun main() {
    val total = Money(100) add Money(50)
    println(total.cents)
}

Lesbarkeit zuerst

Infix-Funktionen spielen ihre Stärke aus, wenn der Aufruf wie ein Satz klingt. Wählen Sie Verbnamen, damit a name b natürlich wirkt.

infix fun String.repeatedTimes(n: Int) = this.repeat(n)

fun main() {
    println("ab" repeatedTimes 3)
}

Vorrang von Infix-Aufrufen

Infix-Aufrufe haben einen niedrigeren Vorrang als arithmetische Operationen, aber einen höheren als Vergleiche. Fügen Sie beim Mischen Klammern hinzu, damit der Ausdruck eindeutig bleibt.

infix fun Int.combine(o: Int) = this * 10 + o

fun main() {
    println(1 combine 2 + 3)
}

Der this-Receiver

In einer Infix-Erweiterung ist this der linke Operand und der Parameter der rechte Operand.

infix fun Int.minus2(o: Int) = this - o

fun main() {
    println(10 minus2 3)
}

Infix-Aufrufe verketten

Infix-Aufrufe sind linksassoziativ, sodass Sie sie verketten können.

infix fun Int.then(o: Int) = this + o

fun main() {
    println(1 then 2 then 3)
}

Infix nicht übermäßig verwenden

Infix-Funktionen lassen Punkte und Klammern weg, was bei nicht offensichtlichen Operationen die Klarheit beeinträchtigen kann. Verwenden Sie sie nur, wenn der Ausdruck dadurch besser lesbar wird.

infix fun Int.power(exp: Int): Int {
    var r = 1
    repeat(exp) { r *= this }
    return r
}

fun main() {
    println(2 power 5)
}

Ein flüssig lesbares Beispiel

Mit Infix-Funktionen können Zusicherungen oder Builder fast wie natürliches Deutsch wirken.

infix fun String.shouldStartWith(prefix: String) =
    this.startsWith(prefix)

fun main() {
    println("kotlin" shouldStartWith "kot")
}

Kurzer Test

Testen Sie Ihr Verständnis von Infix-Funktionen.

Zusammenfassung

Sie haben Infix-Funktionen gelernt:

  • Kennzeichnen Sie sie mit infix und rufen Sie sie als a func b auf.
  • Sie müssen Member- oder Erweiterungsfunktionen mit genau einem Parameter sein, der weder vararg ist noch einen Standardwert hat.
  • to, until und downTo sind integrierte Infix-Funktionen.
  • Verwenden Sie sie nur dort, wo sie die Lesbarkeit tatsächlich verbessern.
infix fun Int.add(o: Int) = this + o

fun main() {
    println(4 add 6)
}
Kostenlos starten

Lerne Kotlin mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
51
Lektionen
203

Häufig gestellte Fragen

Ist die Lektion „Infix-Funktionen“ kostenlos?

Ja — der vollständige Text von „Infix-Funktionen“ 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 „Infix-Funktionen“?

Lesbare Funktionsaufrufe 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 1 von 4.

Wie lange dauert die Lektion „Infix-Funktionen“?

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

  1. Infix-Funktionen
  2. DSL-ähnliche APIs erstellen
  3. tailrec-Funktionen
  4. Wann Sie welche verwenden
← Zurück zu Kotlin Academy