Dart:
Организация кода в функции

Как:

Базовая Функция

В Dart функция определяется с использованием ключевого слова void, если она не возвращает значение, или иначе указывается тип возвращаемого значения. Вот простая функция, которая выводит приветственное сообщение:

void greet(String name) {
  print('Привет, $name!');
}

void main() {
  greet('Алиса');  // Вывод: Привет, Алиса!
}

Возвращение Значения

Функции могут возвращать значения. Следующий пример принимает два целых числа в качестве входных данных и возвращает их сумму:

int add(int a, int b) {
  return a + b;
}

void main() {
  var sum = add(5, 3);
  print(sum);  // Вывод: 8
}

Анонимные Функции

Dart поддерживает анонимные функции (также известные как лямбда-выражения или замыкания), которые могут быть удобны для коротких, спонтанных функциональностей. Вот как использовать анонимную функцию с методом forEach списка:

void main() {
  var fruits = ['яблоко', 'банан', 'вишня'];
  fruits.forEach((item) {
    print(item);
  });
  // Вывод:
  // яблоко
  // банан
  // вишня
}

Синтаксис Стрелки для Функций с Одним Выражением

Для функций, содержащих только одно выражение, Dart предлагает краткий синтаксис с использованием нотации “стрелки” (=>). Это особенно полезно для коротких функций или передачи функций в качестве аргументов:

int square(int num) => num * num;

void main() {
  print(square(4));  // Вывод: 16
}

Использование Сторонних Библиотек

Для более сложных или специализированных функциональностей программисты Dart часто полагаются на сторонние библиотеки. Рассмотрим библиотеку http для выполнения HTTP-запросов. Сначала добавьте http в файл pubspec.yaml в раздел зависимостей:

dependencies:
  http: ^0.13.3

Затем вы можете использовать его для получения данных из Интернета:

import 'package:http/http.dart' as http;

Future<void> fetchUserData() async {
  var response = await http.get(Uri.parse('https://api.example.com/users/1'));
  print(response.body);
}

void main() {
  fetchUserData();
  // Ожидаемый вывод: JSON данные пользователя. Фактический вывод будет зависеть от ответа API.
}

Помните, организуя ваш код в Dart в функции, думайте о возможности повторного использования, ясности и принципе единственной ответственности. Это не только делает ваш код чище, но и проще для понимания и поддержки другими людьми (и вами в будущем).