← Усі уроки

Kotlin Fundamentals · Модуль «Функції» · Урок 5 з 8 · ~6 хв

Функціональні типи та лямбда-вирази

У Kotlin функцію можна зберегти у змінну — так само, як число чи рядок. Це відкриває двері до лямбд.

1. Функція як значення

Досі функції існували самі по собі — ви їх оголошували через fun і викликали за іменем. Але функцію можна також покласти у змінну. Для цього потрібен функціональний тип — опис «які параметри приймає й що повертає»:

(Int, Int) -> Int

Читається: «функція, що приймає два Int і повертає Int».

2. Лямбда-вираз

Лямбда — це сама функція без імені, записана як значення:

val sum: (Int, Int) -> Int = { x: Int, y: Int -> x + y }

sum(2, 3)  // 5

Все, що між { } до стрілки -> — параметри. Після стрілки — тіло (останній вираз — результат, без return).

3. Виведення типів

Якщо тип змінної вже вказано зліва, типи параметрів лямбди можна не дублювати:

val sum: (Int, Int) -> Int = { x, y -> x + y }

4. Лямбда без параметрів

val sayHi: () -> Unit = { println("Привіт!") }
sayHi()
Який функціональний тип опише функцію, що приймає один String і повертає Int?
Напишіть лямбду isEven типу (Int) -> Boolean, яка перевіряє, чи число парне.

🎮 Спробуйте в браузері

Додайте свою лямбду типу (Int) -> Int, наприклад квадрат числа, і виведіть результат.

Не завантажується? Відкрити напряму →

Довідка

Синтаксис і глосарій — у довіднику «Лямбди та функції вищого порядку». Першоджерело: Kotlin Docs — Higher-order functions and lambdas.