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 у функції, думайте про повторне використання, ясність і принцип єдиної відповідальності. Це не лише робить ваш код чистішим, але й легшим для розуміння та обслуговування для інших (та майбутнього вас).