Dart typedef Part 1
Dart ist aktuell in der Version 2.13 verfügbar. Die neueste Version bringt unter anderem type aliases, aber dazu in einem andern Post mehr.
Was tun Sie hier aber genau ?: Sie bestimmen zuerst den Typ, engl. type, der Variable. Im Beispiel oben mit int für Integer. Anschliessend wird eine Bezeichnung vergeben: nummer .
Nach dem Schlüsselwort typedef müssen Sie den Bezeichner für den neuen Typ angeben, im Code oben ist das "Senden". Rechts vom = wird dieser neue Typ definiert. Es handelt sich um eine Funktion, die keinen Wert zurückgibt (void) und die erwartet, das man ihr eine Zeichenkette übergibt (String nachricht).
Im Code oben wird eine Variable vom Typ Senden definiert, mit dem Bezeichner sende. Ihr wird die Funktion nachrichtSenden zugewiesen.
Wenn Sie den Code oben betrachten, entdecken Sie zwei Funktionen. Beide entsprechen vom Format her, den Vorgaben die wir mit typedef Senden gemacht haben !
Ich weiß nicht wie es Ihnen geht, aber Ich habe mich bis jetzt nicht mit dem Thema typedef befasst. Ich nehme die aktuelle Version zum Anlass das zu ändern.
Den Begriff alias kennt man: Etwas, das bereits einen Namen hat, einen anderen, neuen Namen geben. Michael zum Beispiel könnte ja auch bekannt sein, als "Biker Mike". Auf Dart bezogen sieht das aber anders aus.
typedef
Frischen wir aber unser Wissen auf. So definieren Sie eine Integer Variable:
int nummer = 2;
Die Wertzuweisung dürfte klar sein. typedef in Dart macht das selbe, aber für Funktionen.
Betrachten Sie diesen Code:
typedef Senden = void Function(String nachricht);
Der praktische Einsatz:
Senden sende = nachrichtSenden;
Betrachten Sie das komplette Beispiel:
typedef Senden = void Function(String nachricht); void nachrichtSenden(String nachricht) { print(nachricht); } void emailSenden(String nachricht) { print(nachricht); } void main() { Senden sende = nachrichtSenden; sende("Hallo, dies ist eine Textnachricht"); sende = emailSenden; sende("Hallo, dies ist eine E-Mail"); }
Mit Senden sende = nachrichtSenden; weisen Sie sende die Funktion nachrichtSenden zu.
sende selbst verwenden Sie anschliessend wie eine normale Funktion.
Praktischer Nutzen ?
In grösseren Projekten ist es durchaus möglich, das Sie eine Funktion mehrmals, aber in unterschiedlichen Zusammenhängen verwenden.
Sie können zum Beispiel mit Senden warnung oder Senden adresse zwei Variablen definieren. Beide können die gleiche Funktion zu gewiesen bekommen. Sie sind aber von der Bezeichnung her im jeweiligen Codeabschnitt besser verständlich.
Die Funktionen im Beispiel oben sind sehr einfach. Selbstverständlich können Sie komplett ausgebaute Funktionen mit typedef definieren.
Zum Abschluss hier noch der Hinweis, das die Möglichkeiten von typedef von den Entwicklern weiter ausgebaut wurden. Dazu mehr in einem der nächsten Posts.
Kommentare
Kommentar veröffentlichen