December 06, 2009
   int[] dizi = [ 0, 1, 2 ];
   ++dizi.length;             // <- YENİ
   dizi.length += 2;          // <- YENİ
   assert(dizi.length == 6);

dmd 2.037'den önce örneğin şöyle yazmak gerekiyordu:

dizi.length = dizi.length + 1;

Bunun nedeni, aslından length'in bir çift üye işlevden oluşması: length() ve length(yeniUzunluk)... Yukarıdaki atama, aslında tam olarak şöyle yazılabilir:

dizi.length(dizi.length() + 1);

Yani önce uzunluğu veren işlev çağrılıyor, ona 1 ekleniyor, ve ondan sonra yeni uzunluğu belirleyen işlev çağrılıyor. Artık '++dizi.length' yazıldığında aynı işlemler arka planda otomatik olarak hallediliyor.

Bu ben de dahil bir çok kişiyi rahatsız ediyordu. Yenisi çok daha kullanışlı! :)

Şimdi D.ershane'deki kodları tarayıp bu yeni yazımı kullanacağım.

Ali

**DÜZELTME:**Not: Aynı kolaylık yapı ve dizi 'yapı, sınıf, ve eşleme tablosu' niteliklerinde çalışmıyor. :(

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 06, 2009

Derslerdeki dizi uzunluğunu arttıran kodları değiştirdim:

   dizi.length = dizi.length + 1;
   dizi[$ - 1] = yeniEleman;

yerine

   ++dizi.length;
   dizi[$ - 1] = yeniEleman;

Ama daha kısa ve en iyisi tabii ki şu:

   dizi ~= yeniEleman;

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]