Dart Basic: Parameter in Funktionen

Im letzten Artikel zu Dart haben wir uns ja mit, abstrakten Klassen beschäftigt. Ein zugegebener Massen abstraktes Thema (dieser flache Scherz musste jetzt sein).

In diesem Artikel geht es um Parameter, also Übergabewerte.


Nicht wenige Funktionen verrichten ihre Arbeit nur, wenn wir Ihnen einen, oder mehrere Werte beim Aufruf übergeben.
Dabei kann jede Funktion zwei Arten von Parametern übernehmen: benötige(Pflicht) Werte und optionale. Beispiel:

Funktion mit Parametern
In diesem sehr einfach Beispielcode wird eine Funktion benutzt, die zwei Zeichenketten als Übergabewerte erwartet.

Sollten wir diese Funktion ohne, oder mit nur einem Parameter aufrufen, oder sollten die Übergabewerte den falschen Typ haben, wird uns der Compiler einen Fehler melden.

Im Beispiel haben wir also zwei Pflichtwerte zu übergeben. Das Beispiel können wir jetzt um optionale Parameter erweitern.

Optionale Parameter gibt es in zwei Varianten: solche die wir durch ihre Position definieren und solche die wir durch einen Namen, Bezeichner ansprechen. Beide Varianten in einer Funktion implementieren zu wollen, führt zu einem Fehler!


optionaler, positionaler Parameter in Dart


Der optionale Übergabewert ist im Beispiel oben, wohnOrt. Er definiert sich durch seinen Platz in der Kette. In unserem Fall, wird der dritte Übergabewert immer der Variablen wohnOrt zugewiesen.
Man beachte hier auch die [] Klammern, ich welchem sich der optionale Parameter befinden muss.

Es ist aber durchaus möglich, das wir den optionalen Parameter initialisieren möchten. Das geschieht über eine = Zuweisung. Rechts initialisieren wir die Variable wohnOrt mit Westeros. Der Form halber ist noch zu erwähnen, das natürlich auch mehrere optionale Parameter möglich sind.

optionale, benannte Parameter


Im Code oben sehen wir einen benannten Parameter, also einen der durch einen Bezeichner identifiziert werden kann. Im Beispiel hier, durch wohnOrt. Für diese Variante befindet sich der Code in {..} Klammern.

Wenn man sich das jetzt alles so anschaut, kann man sich fragen: Wo liegt der Unterschied ??


Der Unterschied liegt in der Lesbarkeit des Codes. Im Falle des benannten optionalen Parameters ist beim lesen des Funktionsaufrufs sofort klar, welche Übergabewerte Pflicht und welche optional sind.
Schaut man auf Flutter, ich gehe davon aus das dies ein Begriff für Dart Interessierte ist, dann wird dort sehr intensiv mit benannten Parametern gearbeitet.


Kommentare

Beliebte Posts aus diesem Blog

Listen in Dart (2021): Part 1 List.filled List.empty und List.add

Material Design in Flutter Teil 2