Ich würde gerne wissen, wie man Metadaten aus einer Klasse (und ihrer Methode) in einem Makro liest?Haxe - Lesen von Metadaten im Makro
Ich habe versucht, dieses Beispiel zu ändern: https://github.com/HaxeFoundation/HaxeManual/blob/master/md/manual/lf-metadata.md Ich fügte hinzu, „:“, um zu sehen, ob Metadaten ohne sie nur in generierten Code Avilable waren, aber nichts .. Ich habe ein leeres Ergebnis in den drei Fällen ..
Irgendeine Idee bitte?
@:author("Nicolas")
@debug
class MyClass {
@:range(1, 8)
var value:Int;
@broken
@:noCompletion
static function method() { }
}
class Boot {
static public function main() {
test();
}
macro public static function test() {
trace(haxe.rtti.Meta.getType(MyClass)); // { author : ["Nicolas"], debug : null }
trace(haxe.rtti.Meta.getFields(MyClass).value.range); // [1,8]
trace(haxe.rtti.Meta.getStatics(MyClass).method); // { broken: null }
return haxe.macro.Context.makeExpr({}, haxe.macro.Context.currentPos());
}
}
Danke, ich sah, dass Classtype mir helfen könnte, aber ich wusste nicht, wo es zu bekommen. Vielen Dank ! – Peekmo
Ziemlich neu dazu, aber könnten Sie herausfinden, woher die 'cl' und' _' herkommen? (Beispiel: in TInst (cl, _): 'und' case _: ') – bigp
@bigp werfen Sie einen Blick auf die Mustervergleichsdokumentation (unter http://haxe.org/manual/lf-pattern-matching). html) – Waneck