Mirzo Ulugʻbek nomidagi Oʻzbekiston Milliy universiteti Jizzax filiali



Download 93,8 Kb.
Sana18.01.2022
Hajmi93,8 Kb.
#388170
Bog'liq
ddddddddddd


Mirzo Ulugʻbek nomidagi
Oʻzbekiston Milliy universiteti Jizzax filiali

Amaliy matematika” fakulteti

Amaliy matematika va informatika” kafedrasi

DASTURLASH TEXNALOGIYALARI’’



fanidan

Mustaqil ish

Mavzu: “Lyamda ifodalar”


Bajardi: 104-19-guruh talabasi Abduqodirov U.

Qabul qildi : Ismoilov I.
REJA:l

I. KIRISH……………………………………………………………………………

II.ASOSIY QISM .

1.Dasturning madsad va vazifalari…………………………………………………………………



LAMBDA IFODALAR

Java tiliga JDK 8 ning chiqarilishi bilan kiritilgan innovatsiyalar orasida lambda ifodalari mavjud. Lambda - bu alohida o'zgaruvchiga ajratilishi va dasturning turli joylarida bir necha marta chaqirilishi mumkin bo'lgan ko'rsatmalar to'plami.

Lambda ifodasining asosi -> o'qni ifodalovchi lambda operatoridir. Bu operator lambda ifodasini ikki qismga ajratadi: chap qismda ifoda parametrlari ro'yxati, o'ng qismning o'zi esa barcha amallar bajariladigan lambda ifodasining tanasini ifodalaydi.

Lambda ifodasi o'z-o'zidan bajarilmaydi, lekin funktsional interfeysda aniqlangan usulning amalga oshirilishini tashkil qiladi. Funktsional interfeys amalga oshirilmasdan faqat bitta usulni o'z ichiga olishi muhimdir.



Misol:
public class LambdaApp {

 

    public static void main(String[] args) {



         

        Operationable operation;

        operation = (x,y)->x+y;

         

        int result = operation.calculate(10, 20);

        System.out.println(result); //30

    }  

}

interface Operationable{



    int calculate(int x, int y);

}

Operationable interfeysi funksional interfeys vazifasini bajaradi, unda amalga oshirilmagan bitta metod - calculate usuli aniqlanadi. Bu usul ikkita parametr - butun sonlarni oladi va ba'zi bir butun sonni qaytaradi.

Aslida, lambda iboralari avval Java-da qo'llanilgan ichki anonim sinflar uchun biroz qisqartirilgan. Xususan, oldingi misolni quyidagicha qayta yozishimiz mumkin:

public class LambdaApp {

 

    public static void main(String[] args) {



         

        Operationable op = new Operationable(){

         

            public int calculate(int x, int y){

             

                return x + y;

            }

        };

         int z = op.calculate(20, 10);

         System.out.println(z); // 30

    }  

}

interface Operationable{



    int calculate(int x, int y);

}
Lambda ifodasini e'lon qilish va ishlatish uchun asosiy dastur bir qator bosqichlarga bo'linadi:

1. Funktsional interfeysga havolani aniqlash:

2. Lambda ifodasini yaratish:



    • operation = (x,y)->x+y;

Bundan tashqari, lambda ifodasining parametrlari Operatsion interfeysning yagona usuli parametrlariga mos keladi va natija interfeys usulining qaytish natijasiga mos keladi. Aytgancha, biz lambda ifodasidan natijani qaytarish uchun return kalit so'zidan foydalanishimiz shart emas.
Shunday qilib, interfeys usulida ikkala parametr ham int turini ifodalaydi, ya'ni lambda ifodasi tanasida biz ularga qo'shimchani qo'llashimiz mumkin. Qo'shish natijasi ham int turini ifodalaydi, uning ob'ekti interfeys usuli bilan qaytariladi.

Lambda ifodasini e'lon qilish va ishlatish uchun asosiy dastur bir qator bosqichlarga bo'linadi:

3. Interfeys usuliga qo'ng'iroq sifatida lambda ifodasidan foydalanish:

Parametrlarni qo'shish operatsiyasi lambda ifodasida aniqlanganligi sababli, usulning natijasi 10 va 20 raqamlarining yig'indisi bo'ladi.

Shu bilan birga, bitta funktsional interfeys uchun biz ko'plab lambda ifodalarini belgilashimiz mumkin.
MASALAN:
Operationtionable operation1 = (int x, int y)-> x + y;

Operationable operation2 = (int x, int y)-> x - y;

Operationable operation3 = (int x, int y)-> x * y;

         

System.out.println(operation1.calculate(20, 10)); //30

System.out.println(operation2.calculate(20, 10)); //10

System.out.println(operation3.calculate(20, 10)); //200


Parametrlarni Lambda ifodasiga o'tkazish

Lambda ifodasining parametrlari funktsional interfeysdan usul parametrlariga mos kelishi kerak. Lambda ifodasini yozishda parametrlar turini yozish shart emas, garchi printsipial jihatdan buni amalga oshirish mumkin, masalan:

operation = (int x, int y)->x+y;

Agar usul hech qanday parametrni olmasa, bo'sh qavslar yoziladi, masalan:

()-> 30 + 20;

Agar usul faqat bitta parametrni olsa, u holda qavslar olib tashlanishi mumkin:



n-> n * n;
Download 93,8 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish