dart
Funciones
Buscar..
Observaciones
Dart es un verdadero lenguaje orientado a objetos, por lo que incluso las funciones son objetos y tienen un tipo, Función. Esto significa que las funciones pueden asignarse a variables o pasarse como argumentos a otras funciones. También puede llamar a una instancia de una clase Dart como si fuera una función.
Funciones con parámetros nombrados.
Al definir una función, use {param1, param2,…} para especificar parámetros nombrados:
void enableFlags({bool bold, bool hidden}) {
// ...
}
Al llamar a una función, puede especificar parámetros con nombre usando paramName: valor
enableFlags(bold: true, hidden: false);
Función de alcance
Las funciones de dardo también se pueden declarar de forma anónima o anónima. Por ejemplo, para crear una función anidada, simplemente abra un nuevo bloque de funciones dentro de un bloque de funciones existente
void outerFunction() {
bool innerFunction() {
/// Does stuff
}
}
La función innerFunction ahora se puede usar dentro, y solo dentro, outerFunction . Ninguna otra función tiene acceso a ella.
Las funciones en Dart también se pueden declarar de forma anónima, que se utiliza comúnmente como argumentos de función. Un ejemplo común es el método de sort del objeto List . Este método toma un argumento opcional con la siguiente firma:
int compare(E a, E b)
La documentación indica que la función debe devolver 0 si a y b son iguales. Devuelve -1 si a < b y 1 si a > b .
Sabiendo esto, podemos ordenar una lista de enteros usando una función anónima.
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 función anónima también puede estar vinculada a identificadores como tal:
Function intSorter = (int a, int b) {
if(a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
y usado como una variable ordinaria.
numbers.sort(intSorter);