質問:
Go で関数の名前をプログラムで取得することは可能ですか? ?たとえば、関数 foo() が与えられた場合、GetFunctionName(foo) のようなメソッドを使用してその名前を決定できますか?
答え:
はい、可能です。 runtime.FuncForPC を使用して Go で関数の名前を取得します。 function.
解決策:
を使用した解決策は次のとおりです。 runtime.FuncForPC:
package main import ( "fmt" "reflect" "runtime" ) func foo() {} func GetFunctionName(i interface{}) string { return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() } func main() { fmt.Println("name:", GetFunctionName(foo)) }
説明:
GetFunctionName(foo) を呼び出すと、結果として文字列「foo」が返されます。
以上がGo はプログラムで関数名を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。