我有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的这样的代码: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 Reflection API可以在这里找到:Reflect和Type。
通过它们看,似乎没有任何方法来检查函数参数的类型,可能是因为这些信息在许多平台的运行时不可用。例如Javascript是松散类型的,并且您正在查找的信息默认不包含在内。
所以,你有三种选择:
使用RTTI(运行时类型信息)。如果一个类标记为@:rtti
元数据(在Haxe 3中,或者在Haxe 2中为implements haxe.rtti.Infos
),那么有关该类的信息(包括函数参数的类型)可以在运行时以Xml格式提供。你将不得不看看Xml来弄清楚什么是参数。这只适用于附属于类的函数,它不适用于匿名函数。
使用宏。这超出了我的答案范围,但也许在Haxe邮件列表上询问是否需要帮助:)如果参数类型在编译时已知,则可以通过宏知道它,并且可以将该信息保存在某处所以它在运行时可用。
弄清楚,不需要你知道类型另一个使用:)
当然,如果你只需要在编译时的信息,而不是在运行时,你可以做:$type(fn)
你的代码中的任何地方,当你编译它会让你知道“fn”的确切类型签名。
你好,我想问你一些关于haxe的东西..你能帮我吗? – Rajneesh071
@ Rajneesh071我看到你在几个地方问过:P只是发布一个问题,并标记它'haxe',并希望有人可以帮助你。否则,有Haxe IRC频道或Haxe邮件列表。 –
我做了,但成员把他们搁置...... – Rajneesh071
你好,我想问你一些关于haxe的东西..你能帮我吗? – Rajneesh071