Dart Ma'lumot turlari

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);
}
>> 16.0

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);
}
>> double >> int

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);
}
Error: A value of type 'double' can't be assigned to a variable of type 'int'.  UzbekDevs = 5.5;              ^

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);
}
>> 5.5

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.