dart
функции
Поиск…
замечания
Дарт - это истинный объектно-ориентированный язык, поэтому даже функции - это объекты и имеют тип «Функция». Это означает, что функции могут быть назначены переменным или переданы в качестве аргументов другим функциям. Вы также можете вызвать экземпляр класса Dart, как если бы это была функция.
Функции с именованными параметрами
При определении функции используйте {param1, param2, ...}, чтобы указать именованные параметры:
void enableFlags({bool bold, bool hidden}) {
// ...
}
При вызове функции вы можете указать именованные параметры, используя paramName: value
enableFlags(bold: true, hidden: false);
Область применения
Функции Дарта также могут быть объявлены анонимно или вложенными. Например, чтобы создать вложенную функцию, просто откройте новый функциональный блок в существующем функциональном блоке
void outerFunction() {
bool innerFunction() {
/// Does stuff
}
}
Функция innerFunction теперь может использоваться внутри и только внутри, outerFunction . Никакие другие другие функции не имеют к нему доступа.
Функции в Dart также могут быть объявлены анонимно, что обычно используется в качестве аргументов функции. Общим примером является метод sort объекта List . Этот метод принимает необязательный аргумент со следующей сигнатурой:
int compare(E a, E b)
В документации указано, что функция должна возвращать 0 если a и b равны. Он возвращает -1 если a < b и 1 если a > b .
Зная это, мы можем отсортировать список целых чисел, используя анонимную функцию.
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;
}
});
Анонимная функция также может быть привязана к таким идентификаторам:
Function intSorter = (int a, int b) {
if(a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
и используется как обычная переменная.
numbers.sort(intSorter);