Sobes.tech
Middle

Ифодаҳои ламбда дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Экспрессияи lambda дар Java — функсияи номаълум аст. Он имкон медиҳад, ки функсионалиро ҳамчун аргументи усул ё ҳамчун код ҳамчун маълумот баррасӣ кард.

Хусусиятҳои асосӣ:

  • Номаълумӣ: Надорад номи.
  • Интерфейси функсионалӣ: Ифодаи lambda ҳамеша бо интерфейси функсионалӣ (интерфейси бо як методи абстрактӣ) алоқаманд аст.
  • Синтаксис: (параметрҳо) -> { бадан }

Масалан истифода бо интерфейси функсионалии Consumer:

import java.util.function.Consumer;

// Интерфейси функсионалии Consumer<T> як методи абстрактии accept(T t) дорад
Consumer<String> салом = (ном) -> {
    System.out.println("Салом, " + ном);
};

салом.accept("Дунё"); // Натиҷа: Салом, Дунё

Масалан истифода бо интерфейси Runnable:

// Интерфейси Runnable як методи абстрактии run() дорад
Runnable вазифа = () -> {
    System.out.println("Вазифа дар як ҷараёни алоҳида иҷро мешавад");
};

new Thread(вазифа).start(); // Иҷрои вазифа дар ҷараёни нав

Вариантҳои синтаксис:

  • Бе параметрҳо: () -> { System.out.println("Салом"); }
  • Як параметр бе зоҳо: ном -> System.out.println("Салом, " + ном)
  • Якчанд параметр бо зоҳо ва намудҳо: (int a, int b) -> { return a + b; }
  • Якчанд параметр бе намудҳо (инферентсияи намуд): (a, b) -> a + b
  • Таносуби як сатр бе return: (a, b) -> a + b
  • Таносуби бисёрсатр бо зоҳо ва return (агар лозим бошад): (a, b) -> { int ҷамъ = a + b; return ҷамъ; }

Ифодаҳои lambda коди бештар кӯтоҳ, хонданаш осонтар ва истифодаи барномасозии функсионалӣ дар Java-ро имконпазир месозанд.