Yangi Oʻzbekistonni, albatta, yoshlar bilan birga quramiz. 2020-yil yoshlarga
Download 1.38 Mb. Pdf ko'rish
|
Adxam Soataliyev BMI65018
- Bu sahifa navigatsiya:
- Odatiy bo‘lib null bo‘lmaydi
- Bosqichma-bosqich qabul qilinishi mumkin
4.1.1-rasm. Null safety muammosi Null xavfsizligi bilan Dart kodingizdagi potentsial null xatolarni topadi. Null xavfsizlik bilan siz kodingiz haqida ko‘proq ishonch bilan fikr yuritishingiz mumkin. O‘rnatilgan ilovalarda boshqa bezovta qiluvchi ish vaqti null dereferencing xatolari yo‘q. Buning o‘rniga, siz kodlashda statik xatolarga duch kelasiz. Null xavfsizlik tamoyillari. Dart null xavfsizligini qo‘llab-quvvatlash quyidagi uchta asosiy dizayn tamoyillariga asoslanadi: 1. Odatiy bo‘lib null bo‘lmaydi . Agar siz Dartga o‘zgaruvchining null bo‘lishi mumkinligini aniq aytmasangiz, u null bo‘lmagan deb hisoblanadi. Biz buni sukut bo‘yicha tanladik, chunki biz null bo‘lmagan API-da eng keng tarqalgan tanlov ekanligini aniqlandi. 56 2. Bosqichma-bosqich qabul qilinishi mumkin . U erda juda ko‘p Dart kodi mavjud. Siz tanlagan vaqtda, keyin esa bosqichma-bosqich qisman nol xavfsizlik rejimiga o‘tish mumkin bo‘ladi. Xuddi shu loyihada null-xavfsiz va null-xavfsiz kodga ega bo‘lish mumkin bo‘ladi. Migratsiyada sizga yordam beradigan vositalarni ham taqdim etadi. 3. To‘liq ovoz . Dartning nol xavfsizligi yaxshi . Bu shuni anglatadiki, biz tip tizimiga ishonishimiz mumkin: agar u biror narsa null emasligini aniqlasa, u hech qachon null bo‘la olmaydi. Bu kompilyatorni optimallashtirish imkonini beradi. Butun loyihangizni va bog‘liqliklaringizni nol xavfsizlikka o‘tkazganingizdan so‘ng, siz barqarorlikning to‘liq afzalliklaridan foydalanasiz - nafaqat kamroq xatolar, balki kichikroq ikkilik va tezroq bajarilishi. 1. Funksiya bo‘yicha null bo‘lmagan. Asosiy sintaksisi etarlicha sodda. Bu erda turli yo‘llar bilan e'lon qilingan ba'zi null bo‘lmagan o‘zgaruvchilar mavjud. Esingizda bo‘lsin, nonulable standart hisoblanadi, shuning uchun bu deklaratsiyalar bugungidek ko‘rinadi, lekin ularning ma'nosi o‘zgaradi. Dart yuqoridagi o‘zgaruvchilarning birortasiga hech qachon null qo‘ymasligingizga ishonch hosil qiladi. Agar siz widget = nullminglab qatorlarni keyinroq bajarishga harakat qilsangiz, siz statik tahlil xatosi va qizil chiziqli chiziqlarni olasiz va dasturingiz kompilyatsiya qilishni rad etadi. Null bo‘ladigan o‘zgaruvchilar. Agar o‘zgaruvchingiz null bo‘lishini istasangiz, quyidagi ?kabi dan foydalanishingiz mumkin: Sintaksisdan funktsiya parametrlarida va qaytariladigan qiymatlarda ham foydalanishingiz mumkin : Ammo yana bir bor orzuim shuki, siz kamdan-kam hollarda foydalanishingiz kerak bo‘ladi. Turlaringizning aksariyati null bo‘lmaydi. Nul xavfsizlik bilan samarali bo‘lish. Null xavfsizlik faqat xavfsizlik bilan bog‘liq emas. Shuningdek, funksiyadan foydalanishda unumli boʻlishingizni istaymiz, yaʼni funksiyadan foydalanish oson boʻlishi kerak. Masalan, ifnull qiymatni tekshirish uchun foydalanadigan ushbu kodga qarang: 57 Dart vositalari qanday qilib if-iborasini topshirganimizda, loudness o‘zgaruvchi null bo‘lmasligini aniqlay olishiga e'tibor bering. Shunday qilib, Dart bizga clamp() halqadan o‘tmasdan usulni chaqirishga imkon beradi. Ushbu qulaylik oqim tahlili deb ataladigan narsa bilan ta'minlanadi: Dart analizatori xuddi uni bajarayotgandek kodingizdan o‘tib, kodingiz haqida qo‘shimcha ma'lumotlarni avtomatik ravishda aniqlaydi. Mana yana bir misol, u Dart o‘zgaruvchining null emasligiga ishonch hosil qilishi mumkin bo‘lgan holatni ko‘rsatadi, chunki biz unga har doim nol bo‘lmagan qiymatni beramiz: Yuqoridagi topshiriqlardan birini olib tashlasangiz (masalan, qatorni o‘chirish orqali statusText = 'Update failed';), Dart bu null bo‘lmasligiga kafolat bera olmaydi statusText: siz statik xatoga yo‘l qo‘yasiz va kodingiz kompilyatsiya qilinmaydi. Buni DartPadda sinab ko‘rishingiz mumkin. Null xavfsizlik bizning matn terish tizimimizga juda muhim o‘zgarish bo‘lganligi sababli, agar biz majburiy asrab olishni talab qilsak, bu juda buzuvchi bo‘lar edi. Qachon to‘g‘ri kelishini o‘zingiz hal qilmoqchimiz, shuning uchun null xavfsizlik qo‘shiladigan xususiyatdir: siz bunga tayyor bo‘lguningizcha null xavfsizlikni yoqishga majbur bo‘lmasdan, eng so‘nggi Dart va Flutter relizlaridan foydalanishingiz mumkin. . Siz hatto hali bo‘lmagan ilova yoki paketdan nol xavfsizlikni yoqqan paketlarga ham ishonishingiz mumkin. Qabul qilishni tanlaganingizdan so‘ng, birinchi navbatda bog‘liqlik grafigining barglari ko‘chirilishi bilan kodni tartibda ko‘chirishni qat'iy tavsiya qilamiz. Misol uchun, agar C A ga bog‘liq bo‘lgan B ga bog‘liq bo‘lsa, avval A ga, keyin B ga, keyin C ga o‘tkazing. Bu tartib A, B va C kutubxonalar, paketlar yoki ilovalar bo‘ladimi, amal qiladi. 58 Buyurtma nima uchun muhim? Garchi siz bog‘liqliklaringiz ko‘chirilishidan oldin kodni migratsiya qilishda biroz oldinga siljishingiz mumkin bo‘lsa-da, agar bog‘liqliklaringiz ko‘chish vaqtida API'larini o‘zgartirsa, ikkinchi migratsiya o‘tishini amalga oshirishingiz kerak bo‘ladi. Beta-versiyasiga kelganimizda, qaysi bog‘liqliklaringiz ko‘chib ketganini aniqlashga yordam beradigan vositalarni taqdim etamiz. Agar siz paket muallifi bo‘lsangiz, API-larni buzish xavfini oldini olish uchun null-xavfsiz versiyani nashr etishdan oldin barcha bog‘liqliklaringiz ko‘chib ketguncha kuting. Sizning bog‘liqliklaringiz tayyor bo‘lgach, bizning migratsiya vositamizdan foydalanishingiz mumkin. Asbob barcha mavjud kodlaringizni tahlil qilish orqali ishlaydi. Migratsiya vositasi interaktivdir, shuning uchun siz ushbu vosita xulosa qilgan nullability xususiyatlarini ko‘rib chiqishingiz mumkin. Asbobning biron bir xulosasi bilan rozi bo‘lmasangiz, xulosani o‘zgartirish uchun noaniqlik bo‘yicha maslahatlar qo‘shishingiz mumkin. Bir nechta migratsiya maslahatlarini qo‘shish migratsiya sifatiga katta ta'sir ko‘rsatishi mumkin. Download 1.38 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling