使用反射檢索函數名稱
在 Go 中,反射系統允許在運行時自省和操作類型和值。但是,當使用其類型的 Name 方法檢索函數名稱時,可能會傳回空字串。
要解決此問題,請使用執行時間套件中的 FuncForPc 函數。它接受一個指向函數值的指標並傳回一個 *Func 物件。此物件提供對函數名稱的訪問,可以使用 Name 方法取得該名稱。
這是使用FuncForPc 的範例的修改版本:
package main import ( "fmt" "reflect" "runtime" ) func main() { name := runtime.FuncForPC(reflect.ValueOf(main).Pointer()).Name() fmt.Println("Name of function :", name) }
此程式碼列印以下輸出:
Name of function : main.main
如果您只需要函數名稱而無需包前綴,則可以將名稱標記化結果。
以上是如何在 Go 中使用反射檢索函數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!