Tips:自分自身の関数を取得する

この記事では、StackTraceを使用して自分自身の関数を取得する方法を説明します。


taiseiue | 2024-08-30

概要

AliceScript2.3から、StackTrace機能が導入されました。この機能を上手く使用すると、自分自身の関数をデリゲートとして取得できます。

次の例では、myFunction()自身の関数名を取得し、出力します。

サンプルコード

main.alice
void myFunction()
{
  var script = Alice.Interpreter.GetScript();

  var func = script.StackTrace.Last;
  print(func.Name); // 出力例 : myFunction
}

myFunction();

注意

別の関数の引数としてスタックトレースを取得しないでください。別の関数もスタックトレースに追加されてしまいます。 たとえば、hoge(script.StackTrace);var trace=script.StackTrace;hoge(trace);のように置き換えてください。