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. ]