Subject: immutable(char)[] ile immutable char[] Dizgesinin Farkı
Bu farkı ilk önce örnek vererek anlatacağım:
Bu örnekteki immutable bir tür niteleyicisi. Ve burada immutable char[] türünü niteliyor. Ve bu char[] türündeki değişenin değişmeyeceğini char[] yerine kullanılamayacağını belirtiyor. Ancak biz bunu şu şekilde tanımlar isek:
Hata vermeden çalışacaktır. Çünkü burada immutable char[] türünü nitelemiyor. sadece char türünü niteliyor. Ve bu nitelenen türden yeni bir dizi yapıyor. Bu dizinin her bir elemanı immutable özelliğine sahip. Yani elemanlarını değiştirmeye çalışırsanız iki örnektede hata verecektir. Ancak İkinci örnekte str değişkenini elemanını değilde tamamını değiştirirseniz hata vermez.
import std.stdio; void main(){ immutable char[] str = "Bir"; str[0] = 'X' ; //Derleyici hata verir. str= "İki"; //Derleyici hata verir. }
Bu örnekteki immutable bir tür niteleyicisi. Ve burada immutable char[] türünü niteliyor. Ve bu char[] türündeki değişenin değişmeyeceğini char[] yerine kullanılamayacağını belirtiyor. Ancak biz bunu şu şekilde tanımlar isek:
import std.stdio; void main(){ str[0] = 'X' ; //Derleyici hata verir. immutable (char)[] str = "Bir"; str= "İki"; //Derleyici hata vermez. Çünkü str değişkeni yeniden inşa edildi. }
Hata vermeden çalışacaktır. Çünkü burada immutable char[] türünü nitelemiyor. sadece char türünü niteliyor. Ve bu nitelenen türden yeni bir dizi yapıyor. Bu dizinin her bir elemanı immutable özelliğine sahip. Yani elemanlarını değiştirmeye çalışırsanız iki örnektede hata verecektir. Ancak İkinci örnekte str değişkenini elemanını değilde tamamını değiştirirseniz hata vermez.
canalpay
Show profile
Link to this post