Sobes.tech
Junior

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

sobes.tech AI

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

Java-յի lambda արտահայտությունը անանուն (անունով չլինող) ֆունկցիա է, որը իրականացնում է ֆունկցիոնալ ինտերֆեյս:

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

  • Անուն չունի:
  • Կարող է ունենալ պարամետրեր:
  • Թաղանթը կարող է կազմված լինել մեկ արտահայտությունից կամ հրահանգների բլոկից:
  • Վերադարձի տիպը նշված չէ (ավտոմատ կերպով ենթադրվում է):
  • Անհրաժեշտ է ֆունկցիոնալ ծրագրավորման և հոսքերի (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);
tվեր.forEach(n -> System.out.println(n)); // forEach ընդունում է Consumer

Առավելություններ՝

  • Կոդը ավելի կարճ:
  • Բարելավված ընթերցելիություն (հեշտ դեպքերում):
  • Հնարավորություն ֆունկցիոնալ ծրագրավորում օգտագործելու:
  • Պարզեցնում է հավաքածուների և բազմաթելային աշխատանքը:

Հատկանշական՝

  • Ներքաշված կամ երկար lambda-ները կարող են դժվար հասկանալ:
  • Չեն ունենում վիճակ (չեն կարող ունենալ օրինակային դաշտեր):