Middle
Dartda dynamic turi bilan object turi o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
dynamicko'rsatadiki, o'zgaruvchining turi bajarilish vaqtida o'zgarishi mumkin. Turi tekshiruvi kompilatsiya bosqichida o'chirilgan. Bu bajarilish vaqtida xatolarga olib kelishi mumkin.ObjectDart'da barcha obyektlarning asosiy sinfi.Objectturidagi o'zgaruvchi har qanday qiymatni saqlay oladi, lekin uning xususiyatlari va metodlariga kirish uchun aniq turga o'tkazish (cast) yokiisbilan tur tekshiruvi qilish kerak. Turi tekshiruvi kompilatsiya bosqichida amalga oshiriladi.
Misol:
// Dynamic - kompilatsiya bosqichida tur tekshiruvi yo'q
dynamic myDynamicVariable = 10;
myDynamicVariable = "salom"; // Ruxsat etilgan
// Object - tur tekshiruvi yoki o'tkazish kerak
Object myObjectVariable = 10;
// print(myObjectVariable.length); // O'tkazmasdan kompilatsiya xatosi
if (myObjectVariable is int) {
// Xavfsiz tarzda int sifatida foydalanish
int value = myObjectVariable;
print(value + 5);
}
Asosiy farqlar jadvalda qisqacha:
| Xususiyat | dynamic |
Object |
|---|---|---|
| Tur tekshiruvi | Kompilatsiya bosqichida o'chirilgan | Kompilatsiya bosqichida amalga oshiriladi |
| Xavfsizlik | Past (bajarilish vaqtida xatoliklar xavfi) | Yuqori (an'anaviy o'tkazish bilan) |
| A'zolarga kirish | O'tkazmasdan (bajarilish vaqtida xatolik xavfi) | Aniq o'tkazish yoki tekshirish talab qilinadi |
| Foydalanish | Ekstremal hollarda, faqat bajarilish vaqtida ma'lum bo'lsa | Har qanday turdagi qiymatlarni saqlash, kerak bo'lsa aniq nazorat bilan |