Назад к вопросам
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 Нет Есть, если один параметр
Возвращаемое значение Определяется выражением Последнее выражение в теле