Biz hayotda ko’p narsalarni har xil toifalarga ajratamiz. Masalan, olma, anor, behi, uzum, anjir mevalar bo’lsa, pomidor, bodring, baqlajon kabilar esa sabzavot hisoblanadi. Olma, anor, baqlajon larni birgalikda mevalar deb ayta olmaymiz. Shu kabi narsalarni alohida ajratib saqlash uchun ham dasturlash tillarida ma’lumot turlari mavjud.
Ma’lumotlar turi bu obyekt qanday qiymatlarni saqlashi mumkinligini aniq belgilaydi va kompilyatorga ko’rsatib beradi. Har bir dasturlash tilida bo’lgani kabi Dart dasturlash tilida ham asosiy turlar mavjud. Bular :
- int
- double
- num
- String
- dynamic
- bool
Dart dasturlash tilida turlar juda ham ko’p bo’lib, asosiylari shular hisoblanadi. String turi bo’yicha alohida mavzuda yanada aniq va to’liqroq tanishib o’tamiz. Dart dasturlash tilida statik va dinamik turlar ham mavjud.
bool
bool turi ikkita qiymatni ifodalaydi : true (rost) va false (yolg’on). Odatda, bu turdagi o’zgaruvchilar shartli ifodalarda qo’llaniladi.
bool yes = true; bool no = false;
num
int, double, num – sonlarni ifodalash uchun ishlatilovchi turlar bo’lib, num turi int va double turlarining umumlashmasidan iborat. Ya’ni ikkala turdagi qiymatni ham saqlash imkonini beradi.
num UzbekDevs = 5; num UzbekCoder = 5.71;
int
Har qanday butun sonlar int qiymatlari sifatida qabul qilinadi. Hamda butun qiymatlar platformaga qarab 8 bayt (64 bit) dan oshmaydigan joyni egallaydi. Ishchi stol (desktop), mobil ilovalar uchun qiymatlar -263 dan 263-1 gacha. Veb uchun ya’ni JavaScriptni kompilyatsiya qiluvchi Dart -253 dan 253-1 gacha bo’lgan qiymatlarga ega JavaScript raqamli tur tizimidan foydalanadi.
int UzbekDevs = 5; int UzbekCoder = -1;
double
double turi 8 bayt xotirani egallovchi suzuvchi nuqtali raqamlarni ifodalaydi. Matematika tomondan yondashsak, bu tur haqiqiy sonlarni ifodalaydi deb tushunishimiz mumkin. Kasr sonlarni yozishda butun va kasr qismini ajratish uchun biz ‘,’ vergul belgisidan foydalanar edik. Dasturlashda esa bu belgi o’rniga biz ‘.’ nuqta belgisidan foydalanamiz.
double a = 8.8; double b = -5.3; double c = 0.09;
double turidagi o’zgaruvchiga butun qiymat ham saqlanishi mumkin, lekin bu kabi holatda bu qiymat kasr songa o’tkaziladi :
void main() { double UzbekDevs = 16; print(UzbekDevs); }
var
Bu tur ham o’zgaruvchini aniqlab olish uchun qo’llaniladi. var turi o’zgaruvchiga berilgan qiymat orqali unga kerakli turni tayinlaydi.
void main() { var UzbekDevs = 16; var UzbekCoder = 20.5; print(UzbekCoder.runtimeType); print(UzbekDevs.runtimeType); }
O’zgaruvchining runtimeType xususiyati orqali uning qaysi turda ekanligini aniqlash imkonimiz bor.
dynamic
O’zgaruvchi turini aniqlashning yana bir usuli varga o’xshash bu dynamic kalit so’zidan foydalanish. Bu turda var dan farqli o’laroq dinamik turli dasturlash tillari Python, JavaScript larga o’xshash jarayon ketadi. Ya’ni o’zgaruvchi qiymatiga boshqa turdagi qiymatni ham qabul qilish imkoniyati mavjudligida.
void main() { var UzbekDevs = 16; UzbekDevs = 5.5; print(UzbekDevs); }
Yuqoridagi kodda var turidagi o’zgaruvchiga qiymati butun son berilgan bo’lib, uninig qiymatini kasr songa o’zgartirmoqchi bo’linganda xatolik bermoqda.
void main() { dynamic UzbekDevs = 16; UzbekDevs = 5.5; print(UzbekDevs); }
Bunda esa natija chiqmoqda va keyingi qiymat o’zlashtirib olinmoqda. Bu tur kamchiligi siz nisbatan katta loyihalarda ishlash jarayonida aynan qanday qiymatlardan foydalanish kerakligini bilmay qolishingiz.