首頁 >後端開發 >Golang >如何使用Go反射取得函數名稱?

如何使用Go反射取得函數名稱?

Linda Hamilton
Linda Hamilton原創
2024-11-12 20:45:021029瀏覽

How to Obtain the Name of a Function Using Go Reflection?

理解 Go 中的反射:檢索函數名稱

在 Go 的反射系統中,檢索函數名稱並不那麼簡單似乎。在某些情況下,預期的行為是在呼叫 Name 方法時取得空字串。

意外的空字串:

當使用以下程式碼片段時,Name方法傳回一個空字串:

在此在範例中,我們嘗試使用反射檢索主函數的名稱。然而,輸出顯示為“Name of function:”,表示空名稱。

使用runtime.FuncForPC的解決方案:

解決此問題的關鍵在於利用runtime.FuncForPC 函數。該函數傳回一個指向 Func 類型的指針,該指針提供了有關該函數的附加信息,包括其名稱。

現在,結果將是“main.main”,它準確地反映了函數的名稱功能。如果您只想提取函數名稱而不提取套件名稱,可以使用 strings.SplitN 函數拆分字串。

以上是如何使用Go反射取得函數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn