我一直在尝试使用Neko模块,但是我觉得我得到了一些不一致的结果。
var funcs = 0;
var objs = 0;
for (i in 0...m.globalsCount())
{
var obj:Dynamic = m.getGlobal(i);
if (Reflect.compareMethods(obj, init))
trace("matched");
if (Reflect.isFunction(obj))
funcs++;
else if (Reflect.isObject(obj))
objs++;
}
trace('Functions: $funcs');
trace('Objects: $objs');
在上面的代码中,当我第一次运行它时,我得到了4487个函数的总数。如果我删除一个函数,重新构建并运行,我会得到期望的4486个函数。
我添加了“compareMethods”比较来比较“obj”和“init”,其中“init”是我在主文件中声明的一个函数,但跟踪信息从未输出。
我瞥了一眼“compareMethods”函数的代码提示,并偶然发现以下术语:“如果'f1'和'f2'在**物理上**相等”。
现在,它们都是函数,在Haxe手册中没有任何关于物理函数的提及。所以我有一个两部分的问题。
什么是物理函数,如何实现上述预期的跟踪结果?谢谢您提前的回答。