Sobes.tech
Junior — Middle

Proqramlaşdırma dilində məlumat növlərinin təyinində dynamic, var və Object istifadəsi arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Dart dilində (Flutter-də istifadə olunan) dynamic, varObject müxtəlif xüsusiyyətlərə malikdir:

  • var — qeyri-müəyyən tipli dəyişən, tip təyin olunma zamanı müəyyən edilir və sonra sabitləşir. Məsələn:
var x = 10; // x — int
x = 20; // OK
x = 'sətir'; // Tərtib xətası
  • dynamic — tipinin işləmə zamanı yoxlanıldığı dəyişən, tərtibçi təyin etmə və metod çağırışlarında tipləri yoxlamır:
dynamic y = 10;
y = 'sətir'; // OK
print(y.length); // Yalnız işləmə zamanı səhv baş verər, əgər length mövcud deyilsə
  • Object — bütün tiplər üçün əsas sinif, Object tipli dəyişən hər hansı obyekti saxlaya bilər, lakin xüsusi metodları çağırmaq üçün tip çevirmə lazımdır:
Object z = 10;
// z.length; // Tərtib xətası
if (z is String) {
  print(z.length); // Tip yoxlamasından sonra OK
}

Xülasə:

  • var — tip başlanğıcda müəyyən edilir.
  • dynamic — tiplərin yoxlanmasını deaktiv edir, elastik, amma daha az təhlükəsiz.
  • Object — əsas tip, xüsusi əməliyyatlar üçün açıq çevirmə tələb edir.