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.