MWCodebymw.de ↗
Kotlin

Benannte und Standard-Argumente in Kotlin – kein Bedarf mehr für 5 Überladungen

Mit Standardwerten und benannten Argumenten ersetzt Kotlin ganze Stapel überladener Funktionen. Der Aufruf-Code wird lesbarer und du vergisst nie mehr, welcher der vier Boolean-Parameter welcher war.

In Java brauchst du für „dieselbe Funktion mit unterschiedlich vielen Parametern" mehrere Überladungen. Kotlin löst das mit Standardwerten und benannten Argumenten – eine Funktion reicht.

Standardwerte statt Überladungen

fun createUser(
    name: String,
    role: String = "member",
    active: Boolean = true,
    sendMail: Boolean = false,
) { /* … */ }

createUser("Mia")                                   // Rest per Default
createUser("Tom", role = "admin")                   // nur einen abweichen lassen
createUser("Ana", active = false, sendMail = true)  // Reihenfolge egal

Weil role, active und sendMail Defaults haben, musst du sie nur setzen, wenn du abweichst.

Benannte Argumente gegen den „Boolean-Salat"

Vergleich mal diese zwei Aufrufe:

setupDialog(true, false, true)                       // ??? welcher ist welcher?
setupDialog(cancelable = true, fullscreen = false, dark = true)  // sofort klar

Sobald eine Funktion mehrere gleichartige Parameter hat (mehrere Boolean, mehrere Int), machen benannte Argumente den Aufruf selbsterklärend – ganz ohne in die Definition zu springen.

Die eine Regel dazu

Sobald du ein Argument benennst, müssen alle danach ebenfalls benannt werden (oder ihren Default nutzen). Positionsargumente dürfen also nur vor den benannten stehen:

createUser("Mia", active = false)          // ok
createUser(name = "Mia", "admin")          // Fehler – "admin" bräuchte auch einen Namen

Das spart mir in jeder Kotlin-Codebase Dutzende Überladungen und macht Aufrufe lesbar. Mehr Snippets auf code.bymw.de.

Quellen

#Funktionen#Kotlin#Default-Argumente#lesbarer Code

Du brauchst mehr als ein Snippet?

Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.

Projekt anfragen →