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 operatorlar — Dart’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.