首頁 > 後端開發 > Golang > 主體

如何在 Go 中使用反射檢索函數名稱?

Susan Sarandon
發布: 2024-11-11 13:48:02
原創
191 人瀏覽過

How to Retrieve Function Names Using Reflection in Go?

使用反射檢索函數名稱

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板