September 10, 2009

Ben bunları yeni anladım ve paylaşmak istedim. Aslında C'nin makrolarına benziyorlar:

Dizgi katmaları

Derleme sırasında oluşturulan dizgileri, sanki kod satırıymışlar gibi kodun içine katıyorlar:

import std.stdio;

void main()
{
   mixin("int i = 42;");
   writeln(i);
}

Bu basit örnekte gücü anlaşılmıyor. Zamanında körlemesine çevirmiş olduğum şu makalede biraz daha bilgi var:

http://ddili.org/makale/katma.html

Şablon katmaları

Şablonlar bir anlamda kod üretme düzenekleridirler. D, üretilen kodu 'mixin' ifadesinin yazıldığı satıra açma olanağı sunuyor:

import std.stdio;

template foo(T)
{
   T değişken = 1.1;
}

void main()
{
   // Yukarıdaki şablonun [template] double hâlini buraya
   // katıyor
   mixin foo!double;

   // O yüzden bu satırlarda 'değişken' hata vermiyor
   writeln(değişken);
   değişken = 2.2;
   writeln(değişken);
}

Ali

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