Dart tiliga kirish O'zgaruvchilar va konstantalar Primitiv ma'lumotlar turlari
Null qiymat, null mumkin bo'lgan turlar va null xavfsizlik
Download 374.15 Kb.
|
3-mustaqil ish
Null qiymat, null mumkin bo'lgan turlar va null xavfsizlik
Dart maxsus konstantaga ega, ya'ni null, bu o'zgaruvchi yoki konstanta aslida hech qanday qiymatga ega emasligini aytadi. Biroq, ushbu konstantadan foydalanganda, 2.12 versiyasidan boshlab Dart sukut bo'yicha null-safety yoki null-safety dan foydalanishini yodda tuting. Bu nimani anglatadi? Masalan, quyidagi dasturni oling:
Bu erda o'zgaruvchi nomi aniqlanganda unga hech qanday qiymat berilmaydi. Va Dart 2.12 dan boshlab, dasturni kompilyatsiya qilishda biz xatoga duch kelamiz: Xato bizga qiymat berishdan oldin null bo'lmagan o'zgaruvchidan foydalanishga harakat qilayotganimizni bildiradi. Odatiy bo'lib, barcha ma'lumotlar turlari null bo'lmagan turlar sifatida ko'rib chiqiladi, shuning uchun ularni ishlatishdan oldin ularni o'zgaruvchilar va konstantalarga belgilashga ishonch hosil qilishimiz kerak.
Operatormi? va null bo'ladigan turlari Biroq, ba'zi holatlarda siz o'zgaruvchi yoki doimiy qiymatga ega emasligini ko'rsatishingiz kerak bo'lishi mumkin. Ya'ni, u null bo'lishi mumkin bo'lishi kerak. Bu holda biz null bo'ladigan tiplardan foydalanishimiz mumkin.Ular mohiyatan muntazam turlarning ikki barobari bo'lib, ularning o'zgaruvchilari null bo'lishi mumkinligi bundan mustasno. Turni null (null) deb belgilash uchun operator? (savol belgisi). Masalan:
String turi? uning o'zgaruvchisi satr yoki nullni ifodalashi mumkinligini ko'rsatadi. Va ushbu dasturni bajarishda biz quyidagi konsol natijasini olamiz: null
Ushbu turdagi o'zgaruvchilar ham aniq null bilan belgilanishi mumkin:
Konsol chiqishi: Tom
Operator ??
Bu erda ikkita o'zgaruvchi aniqlangan: num1 va num2. Ularning ikkalasi ham butun sonlarni saqlashi mumkin. Biroq, qo'shimcha ravishda, num1 o'zgaruvchisi nullni ham saqlashi mumkin. Nullni qabul qila olmaydigan num2 o'zgaruvchisiga numni saqlashi mumkin bo'lgan num1 qiymati beriladi. Shunga ko'ra, agar num1 = null bo'lsa, biz potentsial xatolikka duch kelishimiz mumkin. Ushbu muammoni hal qilish uchun siz ?? operatoridan foydalanishingiz mumkin:
Agar qiymat1 (?? operatorining chap tomonidagi qiymat) null bo'lmasa, operator aynan shu qiymatni1 qaytaradi. Agar bu qiymat null bo'lsa, operator ?? qiymat2 qaytaradi (operatorning o'ng tomonida).
Birinchi topshiriqda 2-raqamga 1-raqam (23-raqam) qiymati beriladi, chunki 1-raqam null emas. Ikkinchi topshiriqda num2 0 bo'ladi, chunki num1 null. Konsol chiqishi: 23
Operator! Ba'zi hollarda o'zgaruvchini null turdagi o'zgaruvchi sifatida aniqlash mumkin, ammo bu o'zgaruvchi nullni saqlashini istisno qilish mumkin. Va agar biz ushbu o'zgaruvchi dastur ishlashi davomida nol qiymatni olmasligiga ishonchimiz komil bo'lsa, unda bu holda biz o'zgaruvchining nomidan keyin joylashtirilgan operatorni qabul qilishimiz mumkin:
Shu bilan birga, agar bunday ishonch bo'lmasa, unda ushbu operatorni suiiste'mol qilmaslik va undan foydalanmaslik yaxshiroqdir. Download 374.15 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling