7

私は 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 つの部分からなる質問があります。

物理関数とは何ですか? また、上記のようにトレース結果を得るにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1