function
, за яким іде її назва, параметри в круглих дужках і тіло функції в фігурних дужках. Ось приклад:1function greet(name) {
2 console.log("Привіт, " + name + "!");
3}
4
5greet("Аня"); // Виведе: Привіт, Аня!
6
1const greet = (name) => {
2 console.log("Привіт, " + name + "!");
3};
4greet("Богдан"); // Виведе: Привіт, Богдан!
5
1setTimeout(function() {
2 console.log("Цей код виконується через 2 секунди.");
3}, 2000);
4
1function sayHi() {
2 console.log("Привіт!");
3}
4
5function executeFunction(func) {
6 func();
7}
8
9executeFunction(sayHi); // Виведе: Привіт!
10
1function outerFunction() {
2 function innerFunction() {
3 console.log("Я всередині!");
4 }
5 innerFunction(); // Викликаємо внутрішню функцію
6}
7outerFunction(); // Виведе: Я всередині!
8
return
дозволяє функції повертати значення. Якщо ви не вкажете return
, функція поверне undefined
за замовчуванням.1function add(a, b) {
2 return a + b;
3}
4
5const result = add(5, 3);
6console.log(result); // Виведе: 8
7
1function createArray() {
2 return [1, 2, 3];
3}
4
5const arr = createArray();
6console.log(arr); // Виведе: [1, 2, 3]
7
1function multiply(a, b) {
2 return a * b;
3}
4
5console.log(multiply(5)); // Виведе: NaN
6
1function greet(name) {
2 console.log("Привіт, " + name + "!");
3}
4
5greet(); // Виведе: Привіт, undefined!
6
async
. Це дозволяє нам використовувати await
у тілі функції для того, щоб зупинити виконання до отримання результату.Future
, яке представляє результат асинхронної операції. Це означає, що ви можете працювати з обіцянками, які будуть виконані в майбутньому.await
для зупинки виконання.await
await
зупиняє виконання асинхронної функції до тих пір, поки Future
не буде виконано. Це як зупинка дорогоцінного часу у фільмі: ви отримуєте можливість запобігти завантаженню додаткового коду, поки чекаєте на відповіді.1Future<void> fetchData() async {
2 var data = await getDataFromServer(); // Зупиняємо виконання до отримання даних
3 print(data);
4}
5
try-catch
, щоб обробити можливі виключення при виконанні асинхронних операцій:1Future<void> fetchData() async {
2 try {
3 var data = await getDataFromServer();
4 print(data);
5 } catch (e) {
6 print("Сталася помилка: $e");
7 }
8}
9
Future.error
:1Future<String> getDataFromServer() {
2 return Future.error("Не вдалося отримати дані");
3}
4
async/await
1Future<String> fetchData() async {
2 await Future.delayed(Duration(seconds: 2)); // Імітуємо затримку
3 return "Дані отримано!";
4}
5
6void main() async {
7 print("Чекаємо на дані...");
8 String data = await fetchData();
9 print(data); // Виведе: Дані отримано!
10}
11
1import 'dart:convert';
2import 'package:http/http.dart' as http;
3
4Future<void> fetchUserData() async {
5 try {
6 final response = await http.get(Uri.parse("https://api.example.com/user"));
7 if (response.statusCode == 200) {
8 var data = jsonDecode(response.body);
9 print(data);
10 } else {
11 throw Exception("Не вдалося завантажити дані");
12 }
13 } catch (e) {
14 print("Сталася помилка: $e");
15 }
16}
17
await
перед асинхронним викликом:try-catch
.async
, await
, та механізми обробки виключень допомагають створити легкий і зрозумілий код. Тепер ви знаєте, як працювати з асинхронними функціями у Flutter!for
використовується для ітерації через колекції, такі як масиви або словники.while
виконує блок коду доти, поки умова є істинною.while
.while
виглядає так:1var j = 0
2while j < 10 {
3 if j == 5 {
4 break // Зупиняємо цикл, якщо j дорівнює 5
5 }
6 print(j)
7 j += 1
8}
9
break
та continue
, щоб контролювати їх виконання.break
дозволяє вам вийти з циклу достроково.continue
пропускає поточну ітерацію циклу і переходить до наступної.session_start()
.