Lambda ifodalari misollar bilan. Yuqori darajadagi funktsiyalar va lambdalar


Download 37.33 Kb.
bet14/17
Sana25.10.2023
Hajmi37.33 Kb.
#1720034
1   ...   9   10   11   12   13   14   15   16   17
Bog'liq
Lambda ifodalari misollar bilan

Lambda ifodalariga kirish
Lambda iboralari anonim funktsiyalardir (Java uchun 100% to'g'ri ta'rif bo'lmasligi mumkin, ammo bu aniqlik keltiradi). Oddiy qilib aytganda, bu deklaratsiyasiz usul, ya'ni. kirish modifikatorlarisiz, qiymat va nomni qaytaradi.
Muxtasar qilib aytganda, ular sizga usul yozish va uni darhol ishlatish imkonini beradi. Bu, ayniqsa, bitta usul chaqiruvida foydalidir, chunki sinf yaratmasdan usulni e'lon qilish va yozish vaqtini qisqartiradi.
Java tilidagi lambda iboralari odatda quyidagi sintaksisga ega (argumentlar) -> (tana). Masalan:
(arg1, arg2...) -> (tana) (1-toifa arg1, 2-arg2...) -> (tana)
Haqiqiy Lambda ifodalarining ba'zi misollari:
(int a, int b) -> ( a + b qaytarish; ) () -> System.out.println("Salom dunyo"); (String s) -> ( System.out.println(s); ) () -> 42 () -> (qaytish 3.1415 );
Lambda ifodalarining tuzilishi
Lambda ifodalarining tuzilishini ko'rib chiqamiz:
Lambda ifodalari 0 yoki undan ortiq kirish parametrlariga ega bo'lishi mumkin.
Parametr turi aniq ko'rsatilishi yoki kontekstdan olinishi mumkin. Masalan (int a) ham shunday yozilishi mumkin (a)
Parametrlar qavslar ichiga olinadi va vergul bilan ajratiladi. Masalan (a, b) yoki (int a, int b) yoki (String a, int b, float c)
Parametrlar bo'lmasa, bo'sh qavslardan foydalanish kerak. Masalan () -> 42
Faqat bitta parametr mavjud bo'lganda, turi aniq ko'rsatilmagan bo'lsa, qavslar olib tashlanishi mumkin. Misol: a -> a*a ni qaytaring
Lambda ifodasining tanasi 0 yoki undan ortiq ifodani o'z ichiga olishi mumkin.
Agar tana bitta bayonotdan iborat bo'lsa, u jingalak qavslar ichiga kiritilmasligi mumkin va qaytariladigan qiymat return kalit so'zisiz ko'rsatilishi mumkin.
Aks holda, jingalak qavslar kerak bo'ladi (kod bloki) va qaytarish qiymati oxirida return kalit so'zi yordamida ko'rsatilishi kerak (aks holda, qaytarish turi bekor bo'ladi).
Funktsional interfeys nima
Java-da marker interfeyslari usullar yoki maydonlarni e'lon qilmaydigan interfeyslardir. Boshqacha qilib aytganda, marker interfeyslari bo'sh interfeyslardir. Xuddi shunday, Funktsional interfeyslar unda e'lon qilingan faqat bitta mavhum usulga ega interfeyslardir.

Download 37.33 Kb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   17




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