Sobes.tech
Junior — Middle

Dasturlash tilida ma'lumot turlarini aniqlashda dynamic, var va Object ning qanday farqi bor?

sobes.tech AI

AIdan javob

Dart tilida (Flutterda ishlatiladigan) dynamic, var va Object ning turli xususiyatlari mavjud:

  • var — noaniq turga ega o'zgaruvchi, tur boshlang'ich qiymat bilan aniqlanadi va keyinchalik o'zgarmaydi. Masalan:
var x = 10; // x — int
x = 20; // OK
x = 'matn'; // Kompilyatsiya xatosi
  • dynamic — turini bajarilish vaqtida tekshiriladigan o'zgaruvchi, kompilyator tayyorlashda turni tekshirmaydi:
dynamic y = 10;
y = 'matn'; // OK
print(y.length); // Faqat bajarilish vaqtida xato bo'ladi, agar length mavjud bo'lmasa
  • Object — barcha turlar uchun asosiy sinf, Object turidagi o'zgaruvchi har qanday ob'ektni saqlay oladi, lekin maxsus metodlarni chaqirish uchun turini aniqlash kerak:
Object z = 10;
// z.length; // Kompilyatsiya xatosi
if (z is String) {
  print(z.length); // Tur tekshirilgandan keyin OK
}

Xulosa:

  • var — tur boshlang'ich qiymat bilan aniqlanadi.
  • dynamic — tur tekshirishni o'chiradi, moslashuvchan, lekin kamroq xavfsiz.
  • Object — asosiy tur, maxsus operatsiyalar uchun aniq turga o'tkazish talab qilinadi.