私は 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
。 whereinit
は Main ファイルで宣言した関数ですが、トレースが出力されることはありません。
関数のコード ヒントをざっと見てみるcompareMethods
と、次の用語に出くわしましたif 'f1' and the 'f2' are **physically** equal
。
現在、それらは両方とも関数であり、Haxe マニュアルのどこにも物理関数について言及していません。ですから、本当に 2 つの部分からなる質問があります。
物理関数とは何ですか? また、上記のようにトレース結果を得るにはどうすればよいですか? 前もって感謝します。