Forum: D Programlama Dili RSS
Artık dizi uzunluğu doğrudan değiştirilebiliyor
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Artık dizi uzunluğu doğrudan değiştirilebiliyor
    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 mesaj acehreli tarafından değiştirildi; zaman: 2009-12-06, 00:47.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 19:39:03 (UTC -08:00)