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.Objecttü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 veyaisile 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 |