dart
funzioni
Ricerca…
Osservazioni
Dart è un vero linguaggio orientato agli oggetti, quindi anche le funzioni sono oggetti e hanno un tipo, Function. Ciò significa che le funzioni possono essere assegnate a variabili o passate come argomenti ad altre funzioni. Puoi anche chiamare un'istanza di una classe Dart come se fosse una funzione.
Funziona con parametri denominati
Quando si definisce una funzione, utilizzare {param1, param2, ...} per specificare i parametri denominati:
void enableFlags({bool bold, bool hidden}) {
// ...
}
Quando si chiama una funzione, è possibile specificare i parametri denominati utilizzando paramName: valore
enableFlags(bold: true, hidden: false);
Scopo della funzione
Le funzioni Dart possono anche essere dichiarate anonime o nidificate. Ad esempio, per creare una funzione nidificata, basta aprire un nuovo blocco funzione all'interno di un blocco funzione esistente
void outerFunction() {
bool innerFunction() {
/// Does stuff
}
}
La funzione innerFunction può ora essere utilizzata all'interno e solo all'interno di outerFunction . Nessun'altra altra funzione ha accesso ad essa.
Le funzioni in Freccetta possono anche essere dichiarate anonimamente, che è comunemente usato come argomento di funzione. Un esempio comune è il metodo di sort dell'oggetto List . Questo metodo accetta un argomento facoltativo con la seguente firma:
int compare(E a, E b)
La documentazione afferma che la funzione deve restituire 0 se a e b sono uguali. Restituisce -1 se a < b e 1 se a > b .
Sapendo questo, possiamo ordinare una lista di numeri interi usando una funzione anonima.
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;
}
});
La funzione anonima può anche essere associata a identificatori in questo modo:
Function intSorter = (int a, int b) {
if(a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
e usato come una variabile ordinaria.
numbers.sort(intSorter);