Junior
Ифодаҳои lambda дар Java чистанд?
sobes.tech AI
Ҷавоб аз AI
Ифодаи lambda дар Java функсияи номаълум аст, ки имкон медиҳад, блокҳои кодиҳоро ҳамчун объектҳо гузаронад. Ин роҳи кӯтоҳест барои иҷрои интерфейсҳои функсионалӣ (интерфейсҳо бо як методи абстрактӣ).
Синтаксиси ифодаи lambda:
- Листи параметрҳо (метавонад холӣ бошад).
- Оператор
->. - Танаи ифода (метавонад як изҳорот ё блоки дастурҳо бошад).
Масаланҳо:
// Lambda барои интерфейси функсионалӣ Runnable
Runnable вазифа = () -> System.out.println("Салом аз lambda!");
// Lambda барои интерфейси функсионалӣ Comparator<Integer>
Comparator<Integer> муқоиса = (a, b) -> a.compareTo(b);
// Lambda бо танаи блоки дастурҳо
Consumer<String> хушомадгӯ = ном -> {
String паём = "Салом, " + ном + "!";
System.out.println(паём);
};
Хусусиятҳои асосӣ:
- Номаълум: ном надоранд.
- Интерфейсҳои функсионалӣ: барои иҷрои интерфейсҳои функсионалӣ истифода мешаванд.
- Кӯтоҳ: имкон медиҳанд, ки коди кӯтоҳтар нависанд нисбат ба синфҳои номаълум.
- Гирифтан аз тағйирёбандаҳо: метавонанд тағйирёбандаҳои маҳаллӣ
эффективанан финал-ро аз муҳити атроф гирд оранд.
Истифодаи ифодаҳои lambda ба хонданпазирии коди беҳтар ва осон кардани кор бо API-ҳои равона ба барномасозии функсионалӣ, масалан, бо API-и Stream.