Sobes.tech
Middle

Java'da lambda ifodalar nima?

sobes.tech AI

AIdan javob

Java-da lambda ifodasi — bu nomlanmagan funktsiya. Bu, funksionallikani metod argumenti sifatida yoki kodni ma'lumot sifatida ko'rib chiqishga imkon beradi.

Asosiy xususiyatlar:

  • Nomi: Noma'lum.
  • Funktsional interfeys: Lambda ifoda har doim funktsional interfeys bilan bog'liq (bir abstrakt metodga ega interfeys).
  • Sintaksis: (parametrlar) -> { body }

Consumer funktsional interfeysi bilan foydalanish misoli:

import java.util.function.Consumer;

// Funktsional interfeys Consumer<T> ning bitta abstrakt metodi accept(T t)
Consumer<String> salomlashish = (ism) -> {
    System.out.println("Salom, " + ism);
};

salomlashish.accept("Dunyo"); // Chiqish: Salom, Dunyo

Runnable interfeysi bilan foydalanish misoli:

// Runnable interfeysi bitta abstrakt metod run()
Runnable vazifa = () -> {
    System.out.println("Vazifa alohida ipda bajarilmoqda");
};

new Thread(vazifa).start(); // Yangi ipda vazifani boshlash

Sintaksis variantlari:

  • Parametrlar bo'lmagan: () -> { System.out.println("Salom"); }
  • Bir parametr, qavslarsiz: ism -> System.out.println("Salom, " + ism)
  • Bir nechta parametrlar, qavslar va turlar bilan: (int a, int b) -> { return a + b; }
  • Bir nechta parametrlar, turlar bo'lmagan (turlarni aniqlash): (a, b) -> a + b
  • Bir satrlik tanasi, return bo'lmagan: (a, b) -> a + b
  • Ko'p satrli tanasi, qavs va return bilan (agar kerak bo'lsa): (a, b) -> { int yigindi = a + b; return yigindi; }

Lambda ifodalar kodni qisqartiradi, o'qilishi osonroq qiladi va Java'da funktsional dasturlashni qo'llash imkonini beradi.