Sobes.tech
Middle

Dart'ta dynamic tipi ile object tipi arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • dynamic, değişkenin türünün çalışma zamanında değişebileceğini gösterir. Derleme aşamasında tür kontrolleri devre dışıdır. Bu, çalışma zamanında hatalara yol açabilir.
  • Object, Dart'ta tüm nesnelerin temel sınıfıdır. Object türündeki bir değişken herhangi bir değeri saklayabilir, ancak özelliklerine ve metodlarına erişmek için açık tür dönüşümü (cast) yapmak veya is ile tür kontrolü yapmak gerekir. Tür kontrolleri derleme zamanında yapılır.

Örnek:

// Dynamic - derleme zamanında tür kontrolü yok
dynamic myDynamicVariable = 10;
myDynamicVariable = "merhaba"; // İzin verilir

// Object - tür kontrolleri veya dönüşüm gerekir
Object myObjectVariable = 10;
// print(myObjectVariable.length); // Dönüşüm olmadan derleme hatası

if (myObjectVariable is int) {
  // Güvenle int olarak kullan
  int value = myObjectVariable;
  print(value + 5);
}

Anahtar farklar tabloda özetlenmiştir:

Özellik dynamic Object
Tür kontrolü Derleme zamanında devre dışı Derleme zamanında yapılır
Güvenlik Düşük (çalışma zamanı hatası riski) Yüksek (açık dönüşüm ile)
Üyelere erişim Dönüşüm olmadan (çalışma zamanı hatası riski) Açık dönüşüm veya kontrol gerekir
Kullanım Çok nadiren, türün yalnızca çalışma zamanında bilindiği durumlar Her türlü değeri saklama, gerekirse açık kontrol ile