Sobes.tech
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-ում: