Darsliklar Dart Operatorlar bilan ishlash

Dart Dart Operatorlar bilan ishlash

Operatorlar bilan ishlash — Dart’ning o’ziga xos, kuchli operatorlarini chuqurroq o’rganamiz. Oddiy arifmetik operatorlardan tashqari, Dart null-xavfsizlik, shartli tanlash va murakkab holatlar uchun maxsus operatorlar beradi. Ular kodni ancha ixcham va xavfsiz qiladi.

Maxsus operatorlarDart’ga xos, murakkab vazifalarni soddalashtiradigan operatorlar: ternar (?:), null-birlashtirish (??), shartli murojaat (?.) va boshqalar.

Ternar operator

Ternar operator bir qatorli shartni ifodalaydi. U qiymat tanlashda juda qulay:

void main() {
  int yosh = 20;
  String holat = (yosh >= 18) ? "voyaga yetgan" : "voyaga yetmagan";
  print(holat);
}
voyaga yetgan

shart ? rost_natija : yolg'on_natija — sharti rost bo’lgani uchun "voyaga yetgan" tanlandi. Bu if-else ning ixcham shakli.

null-birlashtirish operatori (??)

?? operatori chap qiymat null bo’lsa, o’ng qiymatni beradi. Bu bo’sh qiymatlarni boshqarishda bebaho:

void main() {
  String? ism;                    // null bo'lishi mumkin
  String natija = ism ?? "mehmon";
  print(natija);
}
mehmon

ism null bo’lgani uchun ?? “mehmon” ni qaytardi. Agar ism da qiymat bo’lsa, o’shani berardi. Bu standart qiymat berishning nafis usuli.

Maxsus operatorlar jadvali

Dart’ning maxsus operatorlarini jadvalda ko’ramiz:

Operator Ma’nosi
?: ternar (shartli tanlash)
?? null bo’lsa muqobil qiymat
??= null bo’lsa o’zlashtirish
?. null bo’lmasa murojaat
.. kaskad (cascade)

Shartli murojaat (?.)

?. operatori obyekt null bo’lmasagina uning a’zosiga murojaat qiladi. Bu “null xatosi”ning oldini oladi:

void main() {
  String? ism;
  print(ism?.length);   // ism null bo'lsa, null qaytaradi
  ism = "Farrux";
  print(ism?.length);
}
null
6

Birinchi holatda ism null edi, shuning uchun ?.length xato bermay null qaytardi. Ikkinchisida esa uzunlikni (6) berdi. Bu Dart’ning null-xavfsizligining muhim qismi.

Kaskad operatori (..)

.. (kaskad) bir obyektga ketma-ket bir necha amal qo’llash imkonini beradi:

void main() {
  var royxat = <int>[];
  royxat..add(1)..add(2)..add(3);
  print(royxat);
}
[1, 2, 3]

..add(1)..add(2)..add(3) — bir royxat obyektiga ketma-ket uch amal qo’lladi. Kaskad kodni ixcham qiladi va bir obyekt bilan ko’p ish qilganda foydali.

Xulosa

Bu bo’limda Dart’ning maxsus operatorlarini — ternar (?:), null-birlashtirish (??), shartli murojaat (?.) va kaskad (..) — ko’rib chiqdik. Bu operatorlar kodni ixcham va null-xavfsiz qiladi. Keyingi darsda if shart operatoriga o’tamiz.