Junior — Middle
Фарқи истифодаи dynamic, var ва Object дар муайян кардани намудҳои маълумот дар забони барномасозӣ чист?
sobes.tech AI
Ҷавоб аз AI
Дар тилда (Flutterда ишлатилган) dynamic, var ва Object турли хусусиятларга эга:
var— номаълум турга эга ўзгарувчи, тур инициализация пайтида белгиланади ва кейинчалик мустаҳкамланади. Масалан:
var x = 10; // x — int
x = 20; // OK
x = 'сатр'; // Компиляция хатоси
dynamic— тури ишга туширилганда текшириладиган ўзгарувчи, компилятор турларни берилишда ёки методларни чақиришда текшорамайди:
dynamic y = 10;
y = 'сатр'; // OK
print(y.length); // Фақат ишга тушириш вақтида хатолик, агар length мавжуд бўлмаса
Object— барча турлар учун асосий синф, Object туридаги ўзгарувчи ҳар қандай объектни сақлай олади, лекин махсус методларни чақириш учун турни айлантириш керак:
Object z = 10;
// z.length; // Компиляция хатоси
if (z is String) {
print(z.length); // Тури текширилгандан кейин OK
}
Хулоса:
var— тур инициализацияда белгиланади.dynamic— турлар текширувини ўчиради, эластик, аммо камроқ хавфсиз.Object— асосий тур, махсус операциялар учун аниқ турга ўтказиш талаб қилинади.