Reflection Haxe get函数参数类型

Reflection Haxe get函数参数类型,reflection,haxe,Reflection,Haxe,我有如下haxe代码: var fn:String->Int = function(s:String):Int{ return 1; } getParameterType(fn,1);//Should return String as it is first parameter of fn 函数getParameterType代码应该是什么样子?可以在这里找到Haxe反射API:和 通过查看它们,似乎没有任何方法可以检查函数上的参数类型,可能是因为在许多平台上,这些信息在运行时

我有如下haxe代码:

var fn:String->Int = function(s:String):Int{
    return 1;
}

getParameterType(fn,1);//Should return String as it is first parameter of fn

函数getParameterType代码应该是什么样子?

可以在这里找到Haxe反射API:和

通过查看它们,似乎没有任何方法可以检查函数上的参数类型,可能是因为在许多平台上,这些信息在运行时不可用。例如,Javascript是松散类型的,默认情况下不包括您要查找的信息

所以你有三个选择:

使用运行时类型信息。如果一个类在Haxe 3中用@:rtti元数据标记,或者如果它在Haxe 2中实现了Haxe.rtti.Infos,那么关于该类的信息(包括函数参数的类型)在运行时以Xml格式提供。您必须查看Xml以了解参数是什么。这只适用于附加到类的函数,但不适用于匿名函数

使用宏。这超出了我的回答范围,但是如果您需要帮助,可以在Haxe邮件列表上询问:如果参数类型在编译时已知,则可以让宏知道,并且您可能可以将该信息保存回某个位置,以便在运行时可用

找出另一种不需要您知道类型的用法:


当然,如果您只在编译时需要这些信息,而不是在运行时,那么您可以在代码中的任何位置执行:$typefn,并且在编译时它会让您知道fn的确切类型签名。

可以在此处找到Haxe反射api:和

通过查看它们,似乎没有任何方法可以检查函数上的参数类型,可能是因为在许多平台上,这些信息在运行时不可用。例如,Javascript是松散类型的,默认情况下不包括您要查找的信息

所以你有三个选择:

使用运行时类型信息。如果一个类在Haxe 3中用@:rtti元数据标记,或者如果它在Haxe 2中实现了Haxe.rtti.Infos,那么关于该类的信息(包括函数参数的类型)在运行时以Xml格式提供。您必须查看Xml以了解参数是什么。这只适用于附加到类的函数,但不适用于匿名函数

使用宏。这超出了我的回答范围,但是如果您需要帮助,可以在Haxe邮件列表上询问:如果参数类型在编译时已知,则可以让宏知道,并且您可能可以将该信息保存回某个位置,以便在运行时可用

找出另一种不需要您知道类型的用法:


当然,如果您只在编译时需要这些信息,而不是在运行时,您可以在代码中的任何地方使用:$typefn,编译时它会让您知道fn的确切类型签名。

您好,我想问您一些关于haxe的问题。。你能帮我吗?@Rajneesh071我知道你在几个地方问过:P只要贴一个问题并把它贴上haxe,希望有人能帮你。另外还有Haxe IRC频道或Haxe邮件列表。嗨,我想问你一些关于Haxe的问题。。你能帮我吗?@Rajneesh071我知道你在几个地方问过:P只要贴一个问题并把它贴上haxe,希望有人能帮你。另外还有Haxe IRC频道或Haxe邮件列表。嗨,我想问你一些关于Haxe的问题。。你能帮我吗?嗨,我想问你一些关于haxe的事。。你能帮助我吗?