5

別のモジュールを呼び出す関数またはモジュールを作成した場合、呼び出し元の関数/モジュールの名前を取得するにはどうすればよいですか? これは、デバッグ目的に役立ちます。

4

1 に答える 1

4

このStack関数は、コールスタックにある「タグ」(目的のために「関数」と読みます) のリストを提供して、ほぼ正確にあなたが望むことを行います。StackBeginやのような他の関数が存在するため、防弾ではありませんStackInhibitが、それらはそもそも非常にエキゾチックです。

ほとんどの場合、Stack評価される関数の名前を示すシンボルが返されます。これらのシンボルがどのようなコンテキストからのものであるかを把握するには、Context関数を使用できます。これは、それらがどのパッケージの一部であるかを把握するのに最も近い方法です。ただし、シンボルは ( GetImportToExpressionまたはを介し​​てSymbol) パッケージに動的に追加でき、他のパッケージでも再定義または変更 (たとえば、新しい評価規則を使用) できるため、注意が必要です。

于 2009-09-14T13:45:33.780 に答える