Alıntı (acehreli):
>D'de bu konuyu da ilgilendiren bir gariplik var: foreach'in bazı kullanımları aslında 'static foreach'. Ama D'de açıkça 'static foreach' diye yazılan bir şey yok.
Örneğin, aşağıdaki koddaki foreach çalışma zamanında işletilmiyor, derleme zamanında işletiliyor:
> : : :
> foreach (gün; EnumMembers!Günler) {
> writeln(gün);
> }
> : : :
> ```
>
Sanırım bu çok normal çünkü bu bir şablon. İçeriğinde mixin'ler falan olmalı...
Cahilce bu durumu ilerleteceğim; işin içine enum giriyorsa eğer, static bir şeyler olduğunu düşünüyorum. Yani key/value olarak değerlendirirsek value kısmında hiç bir sorun yok. Ama key'leri de kullanıyorsak, elemanların isimleri static veri olarak yerleştiriliyor. Bunu assembly kodlarında görmüştüm. Ancak bu veri, çağrılabilen cinsten yani bir yerde string olarak duruyor ve o adres hafızaya alınıp ilgili işleve dallanılıyor.
--
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]