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-ро имконпазир месозанд.