Junior
Ի՞նչ են լամբդա արտահայտությունները Java-ում։
sobes.tech AI
Պատասխան AI-ից
Java- ում lambda արտահայտությունը անանուն ֆունկցիաների (անուն չունեցող ֆունկցիաներ) ներկայացնելու կարճ միջոց է: Դրանք օգտագործվում են ֆունկցիոնալ ինտերֆեյսների օրինակներ ստեղծելու համար:
Հիմնական բաղադրիչներ՝
- Պարամետրերի ցանկ՝
()փակագծերը պարունակում են պարամետրերի ցանկը: Եթե պարամետրեր չկան, օգտագործվում են դատարկ փակագծեր: - Ուղղահայաց գիծ
->՝ բաժանում է պարամետրերի ցանկը lambda արտահայտության մարմնից: - Մարմին՝ կարող է լինել միակ արտահայտությունը կամ կոդի բլոկ
{}փակագծերի մեջ:
Օրինակ առանց պարամետրերի:
// Ֆունկցիոնալ ինտերֆեյս
@FunctionalInterface
interface Greeting {
void sayHello();
}
// Lambda արտահայտության օգտագործում
Greeting greeting = () -> System.out.println("Hello, World!");
Օրինակ պարամետրերով:
// Ֆունկցիոնալ ինտերֆեյս
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
// Lambda արտահայտության օգտագործում
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
return a - b;
};
Առավելություններ՝
- Կարճ: Կրճատում է boilerplate կոդի ծավալը:
- Հարմարավետություն: Օգտագործվում է միասին Stream API-ի հետ հավաքածուների մշակման համար:
- Ֆունկցիոնալ ծրագրավորում: Աջակցում է ֆունկցիոնալ ծրագրավորման տարրերին:
Հաշվարկային սահմանափակումներ՝
- Կարող է օգտագործվել միայն ֆունկցիոնալ ինտերֆեյսների հետ (մեկ աբստրակտ մեթոդ ունեցող ինտերֆեյսներ):
- Չեն կարող ունենալ վիճակ (այլ կերպ ասած՝ չեն կարող փոփոխել փոփոխականները իրենց կոնտեքստից դուրս, եթե այդ փոփոխականները բացահայտորեն չեն հայտարարվել որպես final կամ effectively final):
Lambda արտահայտությունները ներդրվեցին Java 8-ում: