July 27, 2010

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