uzun zamandir d'de aradigim bir seyi buldum, cok sevindim.
python'da dir() diye bir method var, bir nesnenin tum attributelarini ve kullanabilecegi metodlari gosteriyor. bunun d'de nasil oldugunu bilmiyordum, bir suredir de ogrenmeye calisiyordum, sonunda #d kanalindaki d1ciler sagolsunlar, hem d2'yi sevmeyip, hem de gayet iyi biliyorlarmis ki __traits kullanmami tavsiye ettiler. :)
diyelim ki soyle bir sinifimiz var:
class Person
{
string name;
string lastname;
string age;
void damnIt() {
writeln("Damning it in 5 seconds..");
}
}
bu sinifa ait name, lastname, age gibi attributelari ve damnIt metodunu vs. gorebilmek icin sunu kullaniyoruz:
string[] members = [__traits(allMembers, Person)];
writeln(members);
// cikti:
// name lastname age damnIt toString toHash opCmp opEquals Monitor factory
hepsi ve daha fazlasi icin: http://digitalmars.com/d/2.0/traits.html
hani reflection api yok diyordum ya, varmis. :D
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply