Sobes.tech
Middle

Ինչ է լամբդա արտահայտությունները Java-ում?

sobes.tech AI

Պատասխան AI-ից

Java-ում λ արտահայտությունը անանուն ֆունկցիա է։ Այն թույլ է տալիս դիտարկել ֆունկցիոնալությունը որպես մեթոդի արգումենտ կամ որպես տվյալների տեսքով կոդ։

Հիմնական հատկանիշները՝

  • Անանունություն: Անուն չունի։
  • Ֆունկցիոնալ ինտերֆեյս: λ արտահայտությունը միշտ կապված է ֆունկցիոնալ ինտերֆեյսի հետ (մեկ աբստրակտ մեթոդով ինտերֆեյս)։
  • Սինտաքսիս: (պարամետրեր) -> { մարմին }

Օրինակ 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-ում։