Dart Const, Final, Var, Dynamic ve Static Kavramları

Static bir nesneyle ilgili olan özelliklerin o nesnenin instance’ıyla bağlı olup olmadığını belirler. Static değişken ve method olabilir.
Staticler Classtan yeni bir nesne oluşturulduğunda üretilmez. Bütün nesneler ayni static objeyi kullanır çünkü tamamen classa aittir ondan üretilen nesneye değil.

 

Const derlenmeden veya derlenme zamanı değerli bilinenlerdir. Var, final, dynamic sadece değişken tanımlarken kullanılır. Const’un farklı kullanımları da vardır.

dynamic: tip ve değer runtime’da bilinir.

var: tip compile time’da değer runtime’da bilinir.

final:  tip compile time’da değer runtime time’da bilinir. (yalnızca bir kez tanımlanır.)

const: tip ve değer compile time’da bilinir.

bunların arasında en az maliyetli olan const’tur.

 

Var ve dynamic arasındaki fark

var x = “ali onur”;

dynamic y = ” özdemir”;

x. yazdığında string metodları gelebilir.

ama y. yazdığında metodlar gelmez.

Çünkü var x dediğimde kod derlenmeden önce onun bir string olduğu anlaşılabiliyor ama dynamic y dediğinde onun tipi kod derlendikten sonra verildiği için ide de metodları gelmiyor.

dynamic değişkeninin içerisindeki tipler değişebilir

Örneğin

dynamic x = 5;

x= “ali onur”; ama var için böyle olmaz.

 

Const ve Final arasındaki Fark

final tanımlanmış bir listeye sonradan ekleme yapabilirsiniz. Ancak cost olarak tanımlanmış bir listede bu işlemleri gerçekleştiremezsiniz.

Örneğin:

final List b = [“a”, “b”, “c”];
b.add(“s”); // Print [a, b, c, s]
List c = const [“a”, “b”, “c”];
c.add(“sa”); // Print Uncaught Error: Unsupported operation: add

 

 

Paylaş:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir