Junior
Ифодаҳои lambda дар Java чистанд?
sobes.tech AI
Ҷавоб аз AI
Ифодаи lambda дар Java — функсияи номаълум (бе ном) мебошад, ки интерфейси функсионалиро иҷро мекунад.
Хусусиятҳои асосӣ:
- Ном надоранд.
- Мумкин аст параметрҳо дошта бошанд.
- Тана метавонад аз як израз ё блоки фармонҳо иборат бошад.
- Типи баргардонидашавӣ нишон дода нашудааст (автоматӣ муайян мешавад).
- Барои барномасозии функсионалӣ ва кор бо ҷараёнҳо (Streams API) зарур аст.
Синтаксис:
// Бе параметр
() -> { // тана }
// Бо як параметр (тӯри мумкин аст гузошта шавад)
param -> израз
// Бо чанд параметр (тӯри мумкин аст гузошта шавад, зарур аст паренҳезҳо)
(param1, param2) -> { // тана }
Маслиҳат истифода:
// Интерфейси функсионалӣ (дарунсохт)
import java.util.function.Consumer;
// Иҷро бо lambda
Consumer<String> чопгар = s -> System.out.println(s);
чопгар.accept("Салом ҷаҳон!");
// Истифода дар як усул, ки интерфейси функсионалиро қабул мекунад
import java.util.Arrays;
import java.util.List;
List<Integer> рақамҳо = Arrays.asList(1, 2, 3, 4, 5);
рақамҳо.forEach(n -> System.out.println(n)); // forEach Consumer-ро қабул мекунад
Фоидаҳо:
- Коди кӯтоҳтар.
- Беҳтар хонданӣ (дар ҳолатҳои содда).
- Имконият барои истифодаи барномасозии функсионалӣ.
- Осон кардани кор бо коллексияҳо ва бисёрсӯзиш.
Маҳдудиятҳо:
- Lambda-ҳои дарундаро ё дароз метавонад душвор фаҳмидан бошанд.
- Ҳолат надоранд (наметавонанд майдонҳои намунавӣ дошта бошанд).