предисловие
Лямбда-выражения, также известные как замыкания, являются наиболее важной новой функцией, лежащей в основе выпуска Java 8. Лямбда-выражение состоит из трех частей: списка аргументов, стрелки (->) и выражения или блока операторов. Лямбда-выражения позволяют передавать функции в метод в качестве параметров (функции передаются в методы в качестве параметров). Использование лямбда-выражений может сделать код более лаконичным и компактным.
Что такое лямбда-выражение
Лямбда-выражение (лямбда-выражение) — это анонимная функция. Лямбда-выражение названо в честь лямбда-исчисления в математике, что напрямую соответствует лямбда-абстракции. Это анонимная функция, то есть функция без имени функции. Лямбда-выражения могут представлять замыкания (обратите внимание, что это отличается от традиционного математического смысла).
Синтаксис лямбда-выражения
Справочник по лямбда-эквивалентному методу
(Apple a) -> a.getWeight() Apple::getWeight
() -> Thread.currentThread().dumpStack() Thread.currentThread()::dumpStack
(str, i) -> str.substring(i) String::substring
(String s) -> System.out.println(s) System.out::println
Функции лямбда-выражения
- Необязательное объявление типа: нет необходимости объявлять тип параметра, компилятор может единообразно идентифицировать значение параметра.
- Использование лямбда-выражений может сделать код более лаконичным и компактным.
- Необязательные круглые скобки параметров: Один параметр не должен определять круглые скобки, но несколько параметров должны определять круглые скобки.
- Необязательные фигурные скобки: если тело содержит оператор, фигурные скобки не требуются.
- Необязательное ключевое слово return: если тело имеет только одно возвращаемое значение выражения, компилятор автоматически вернет значение, а фигурные скобки должны указать, что выражение возвращает значение.
Рекомендации по лямбда-выражению
- Лямбда-выражения в основном используются для определения интерфейсов типа метода, которые выполняются встроенно, например, простой интерфейс метода. В приведенном выше примере мы использовали различные типы лямбда-выражений для определения методов интерфейса MathOperation. Затем мы определяем выполнение sayMessage.
- Лямбда-выражения избавляют от необходимости использовать анонимные методы и предоставляют Java простые, но мощные возможности функционального программирования.
Пример лямбда-выражения:
Без параметров, возвращаемое значение - информация
() -> info
Получает параметр (числовой тип) и возвращает значение, умноженное на 5.
x -> 5 * x
Принимает 2 аргумента (числа) и возвращает их разницу
(x, y) -> x – y
Получить 2 целых числа int и вернуть их сумму
(int x, int y) -> x + y
Принимает строковый объект и выводит его на консоль, не возвращает значения (похоже, возвращает void)
(String s) -> System.out.print(s)
Конечно, вышеизложенное — это всего лишь применение простых лямбда-выражений. Существуют также составные лямбда-выражения, в которых используется несколько простых лямбда-выражений. Например: лямбда-выражения, объединенные в различных формах, таких как функциональная композиция, предикатная композиция и компараторная композиция.
Суммировать
В этой статье кратко представлена новая функция Java 8 — лямбда-выражения. Вообще говоря, это относительно легко и можно быстро начать. Его можно использовать для большей практики в проекте, что может сделать код более лаконичным и компактным. Все еще стоит учиться.
Хорошо, спасибо за прочтение, надеюсь, вам понравилось, если вам было полезно, ставьте лайк и подписывайтесь. Если есть какие-либо несоответствия, добро пожаловать в комментарии. Увидимся в следующий раз.