Öylesine yazmakta olduğum bir kodda yine karşılaştım: Kullanılan aralığın .length niteliği varsa, yani kaç eleman geleceğini biliyorsak, onları yazacağımız dizi de baştan yer ayırabiliriz:
static if (hasLength!R) {
arr.reserve = source.length;
}
Alıntı (zafer):
>Alıntı:
>> > dizi.çarp(10).equal([ 10, 20, 30 ])
> > ```
> >
>
> Mesela yukarıdaki kod aslında çarp(dizi, 10); şeklinde olabiliyor sanırım?
Evet, o kod *İşlev Çağırma Ortak Söz Dizimi (UFCS)* olanağından yararlanıyor: <http://ddili.org/ders/d/ufcs.html>
Alıntı:
> Konuya çok hakim olmayanlar için ilk yazım biraz kafa karıştırıcı.
>
Ne yazık ki öyle ama yararını anlayınca vazgeçilemiyor. :) Yukarıdaki bağlantıda da gösterildiği gibi, önceden alıştığımız gibi yazarsak çarpılan değer ve 'çarp' ve neye eşit olacağı ile 'equal' birbirlerinde uzak düşüyorlar:
equal(çarp(dizi, 10), [ 10, 20, 30 ])
Bu yeni yazdığım daha okunaksız çünkü içeriden dışarıya doğru okumamız gerekiyor. Yukarıdaki zincirleme olan ise soldan sağa: dizi ile başla, şu değerle çarp, şu değerle karşılaştır.
Ali
--
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]