dart
Funktionen
Suche…
Bemerkungen
Dart ist eine echte objektorientierte Sprache, daher sind selbst Funktionen Objekte vom Typ Function. Das heißt, Funktionen können Variablen zugewiesen oder anderen Funktionen als Argumente übergeben werden. Sie können eine Instanz einer Dart-Klasse auch so aufrufen, als wäre sie eine Funktion.
Funktionen mit benannten Parametern
Verwenden Sie beim Definieren einer Funktion {param1, param2,…}, um benannte Parameter anzugeben:
void enableFlags({bool bold, bool hidden}) {
// ...
}
Beim Aufrufen einer Funktion können Sie benannte Parameter mit paramName: value angeben
enableFlags(bold: true, hidden: false);
Funktionsumfang
Dartfunktionen können auch anonym deklariert oder verschachtelt werden. Um beispielsweise eine verschachtelte Funktion zu erstellen, öffnen Sie einfach einen neuen Funktionsblock innerhalb eines vorhandenen Funktionsblocks
void outerFunction() {
bool innerFunction() {
/// Does stuff
}
}
Die Funktion innerFunction kann jetzt innerhalb und nur in outerFunction . Keine anderen Funktionen haben Zugriff darauf.
Funktionen in Dart können auch anonym deklariert werden, was üblicherweise als Funktionsargument verwendet wird. Ein typisches Beispiel ist die sort des List Objekts. Diese Methode nimmt ein optionales Argument mit der folgenden Signatur an:
int compare(E a, E b)
In der Dokumentation heißt es, dass die Funktion 0 muss, wenn a und b gleich sind. Es gibt -1 wenn a < b und 1 wenn a > b .
Wenn Sie dies wissen, können wir eine Liste ganzer Zahlen mit einer anonymen Funktion sortieren.
List<int> numbers = [4,1,3,5,7];
numbers.sort((int a, int b) {
if(a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
});
Die anonyme Funktion kann auch an Bezeichner gebunden sein:
Function intSorter = (int a, int b) {
if(a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
und als gewöhnliche Variable verwendet.
numbers.sort(intSorter);