Назад к вопросам
Junior
94
questionbank
Что такое лямбда-выражения с точки зрения синтаксиса в Java и Kotlin?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Java:
// Лямбда-выражение для функционального интерфейса с одним методом
(параметры) -> {
// Тело выражения
}
// Пример с функциональным интерфейсом Consumer
Consumer<String> consumer = (s) -> System.out.println(s);
// Пример с функциональным интерфейсом Function
Function<Integer, String> function = (i) -> String.valueOf(i);
// Пример без параметров
Runnable runnable = () -> System.out.println("Hello");
В Kotlin:
// Лямбда-выражение
{ параметры ->
// Тело выражения
}
// Пример с одним параметром
val printString: (String) -> Unit = { s -> println(s) }
// Пример с неявным параметром 'it'
val printIt: (String) -> Unit = { println(it) }
// Пример с несколькими параметрами
val sum: (Int, Int) -> Int = { a, b -> a + b }
// Пример без параметров
val sayHello: () -> Unit = { println("Hello") }
Ключевые отличия:
| Аспект | Java Лямбда | Kotlin Лямбда |
|---|---|---|
| Синтаксис | (параметры) -> { тело } |
{ параметры -> тело } |
| Тип | Функциональный интерфейс | Функциональный тип |
Неявный it |
Нет | Есть, если один параметр |
| Возвращаемое значение | Определяется выражением | Последнее выражение в теле |