|
Muhammad al-xorzmiy nomidagi toshkent axborot texnologiyalari universiteti urganch filiali
|
bet | 3/6 | Sana | 13.05.2024 | Hajmi | 444,65 Kb. | | #228452 |
Bog'liq mobiliUskuna ta’minoti — statik yozish qayta foydalanishga, kodni aniq-ravon tugatishga va boshqa IDE xususiyatlari uchun imkon beradi. Kotlinning turni avtomatik aniqay olishi sababli, koddan ortiqcha keraksiz so’zlarining ko’pchiligi yo’qolib ketadi, chunki o’zgaruchilarni e’lon qilishingizga ehtiyoj qolmaydi.
Agarda Kotlin tizimining aniqligiga qarasangiz, ko’plab o’xshash tushunchalarni ko’rishingiz mumkin. Turlar, interfeyslar, “generic”lar Javaga o’xshash usulda ishlaydi, shuning uchun siz Javaga oid bilimingiz orqali Kotlinga osongina o’rganshingiz mumkin. Shunga qaramasdan, ba’zi narsalar yangidir. Ulardan eng muhimi Kotlinning NullPointerException qaytarishi mumkin bo’lgan holatlarni kompilyatsiya vaqtida aniqlab, nullable turlar yordamida ishonchliroq dasturlarni yozishga imkon beradi. Men nullable turlar haqida keyinroq batafsil to’xtalib o’taman. Kotlindagi yana bir yangilik bu uning funksional dasturlash tili ekanligidir. Buning nima ekanligini ko’rishni istasangiz, keling, funksional dasturlashning asosiy g’oyalariga e’tibor qaratamiz va uning Kotlinda qanday ishlashini ko’ramiz. Java dasturchisi sifatida, siz hech shubhasiz obyektga yo’naltirilgan dasturlashning asosiy tushunchalari(konseptsiyalari) bilan tanishsiz, biroq funksional dasturlash sizga yangi tushuncha bo’lishi mumkin.
Birinchi klass funksiyalari (First-class functions) — siz funksiyalardan xuddi qiymatlardek foydalanasiz. Siz ularni o’zgaruvchilarga joylashtirishingiz, ma’lum parametr sifatida foydalanishingiz yoxud ularni boshqa funksiyalardan qaytarishingiz (return) ham mumkin.
O’zgarmasligi — siz yaratilganidan so’ng holati o’zgarmasligini kafolatlovchi o’zgarmas obyektlar bilan ishlaysiz.
Betaraf ta’sirlar — siz kiritilgan ma’lumot bilan bir xildagi natijani qabul qiladigan va boshqa obektlarning holatini o’zgartirmaydigan, yoki tashqi dunyo bilan aloqa qilmaydigan asl funksiyalardan foydalanasiz
Funksional tarzda kod yozishdan qanday foyda olishingiz mumkin? Birinchidan, qisqa va lo’ndalik. Funksional kod jozibaliroq va qisqaroq bo’lishi mumkin, chunki funksiyalar bilan qiymatlardek ishlash sizga kodingizdan nusxa ko’chirishlaridan qochish imkonini beruvchi kuchni beradi. Tasavvur qiling, sizda bir xil vazifani bajaruvchi ikkita o’xshash qism kod mavjud(misol uchun, to’plamdan mos elementni qidirish), biroq detallarida farqlanadi (mos elementning qanday aniqlanishida). Siz mantiqning umumiy qismini funksiyaga osonlikcha ko’chirishingiz va farq qiluvchi qismini parametr sifatida o’tkazishingiz mumkin. Ushbu parametrlar ham shu funksiyalarning o’zi, biroq siz ularni “lambda ifodalar” deb nomlanuvchi anonim funksiyalardan uchun aniq tuzilishdan foydalanib ifodalashingiz mumkin.
Funksional kodning ikkinchi afzalligi bu xavfsiz oqimlardir. Ko’p oqimli dasturlarning eng katta xato bu to’g’ri sinxron qilinmagan bir xil ma’lumotning o’zgarishidir. Agarda siz doimiy ma’lumot strukturasi va asl funksiyalardan foydalansangiz, bu kabi xatarli o’zgarishlar sodir bo’lmasligiga ishonch hosil qila olasiz va murakkab sinxronizatsiya jadvaliga duch kelishingizga hojat qolmaydi. Ya’ni, funksional dasturlash degani osonroq testlashdir. Yomon ta’sirlarsiz kod odatda testlashga osonroq. Funksiyalar o’zi alohida-alohida tekshirilishi mumkin.
Umuman olganda, funksional uslub har qanday dasturlash tilida, xususan, Javada ham, ishlatilishi mumkin va uning ko’p qismlari yaxshi dasturlash uslubi sifatida qo’llab-quvvatlanadi. Biroq hamma tillar ham undan qiyinchiliksiz foydalanishga imkon beradigan sintaktik va kutubxona ta’minoti bilan ta’minlanmagan. Masalan, bu ta’minot Java 8 dan oldingi Java versiyalarida yo’q bo’lgan. Kotlin funksional dasturlashni qo’llab-quvvatlovchi ko’plab xususiyatlarga boydir. Bular quyidagilarni qamrab olgan:
|
| |