Bu istek fazla sık olmasa da belirtiliyor. Hayır, in işleci D dizileriyle kullanılamıyor (eşleme tablolarıyla (associative arrays) kullanılıyor). Ama kendi türlerimiz için tanımlayabiliyoruz:
http://ddili.org/ders/d/islec_yukleme.html#ix_islec_yukleme.in,%20i%C5%9Fle%C3%A7%20y%C3%BCkleme
O zaman yine de sayfalar üzerinde değil, bölümde arayabilirsin:
if (geçerliSayfa in bölümEski)
Ama bunun işleyebilmesi için elinde öncelikle bir Sayfa nesnesi olması gerekir. Halbuki çoğu durumda belki de sayfa ismi ile aratmak istiyorsundur. O zaman bir de opBinaryRight!"in"(string) yüklemesi yazabilirsin. Ama iyice düşününce bunun ancak bazı özel üyeler için ve bazı özel türler için mantıklı olduğunu görürsün. Örneğin, neden kendimizi yalnızca sayfa ismiyle kısıtlayalım, vs.
En kolayı şu:
auto bulunan = bölümEski.sayfalar.find!(sayfa => sayfa.isim == geçerliSayfa);
if (!bulunan.empty) {
// bulunan, bulanan noktadan sona kadar bir aralıktır
writeln(bulunan.front);
}
Amacın yalnızca var olup olmadığını bilmekse o zaman std.algorithm.canFind var.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]