Стрелочная функция =>
Стрелочная функция => в Dart - это сокращённая форма записи функции,
тело которой состоит из одного выражения. Слева от оператора =>
указываются параметры функции, а справа - выражение, результат которого
автоматически возвращается. Стрелочную запись можно применять как к
обычным функциям, так и к анонимным, а также к методам класса и геттерам.
Синтаксис
// Обычная функция
тип имя(параметры) => выражение;
// Анонимная функция
(параметры) => выражение;
Пример
Давайте объявим функцию, которая складывает два числа, используя стрелочную запись:
int sum(int a, int b) => a + b;
void main()
{
print(sum(2, 3));
}
Результат выполнения кода:
5
Пример
Давайте запишем ту же функцию в обычном виде и сравним результат:
int sum(int a, int b)
{
return a + b;
}
void main()
{
print(sum(2, 3));
}
Результат выполнения кода:
5
Пример
Стрелочную функцию удобно использовать в качестве анонимной функции, например при переборе списка:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((num) => print(num));
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте используем стрелочную функцию для преобразования
списка с помощью метода map:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
List<int> doubled = numbers.map((n) => n * 2).toList();
print(doubled);
}
Результат выполнения кода:
[2, 4, 6, 8, 10]
Пример
Стрелочную запись можно применять и к методам класса:
class User
{
String name;
User(this.name);
String get greeting => 'Hello, $name!';
}
void main()
{
User user = User('Alice');
print(user.greeting);
}
Результат выполнения кода:
"Hello, Alice!"