首頁 > 後端開發 > Golang > 如何取得Go函數的參數名稱?

如何取得Go函數的參數名稱?

Barbara Streisand
發布: 2024-12-21 13:07:23
原創
868 人瀏覽過

How Can I Get the Name of a Go Function's Parameter?

Go 中的參數名稱擷取

考慮以下 Go方法:

func (t *T) TMethod(data *testData) (interface{}, *error) {
    ...
}
登入後複製

如果您想確定參數的名稱(即資料),嘗試使用以下程式碼將導致檢索結構name:

reflect.ValueOf(T).MethodByName("TMethod").Type.In(0).Elem().Name()
登入後複製

遺憾的是,取得函數或方法參數的名稱在Go 中是不可行的。這主要是因為呼叫此類函數時參數名稱無關緊要。相反,重點在於它們的類型和順序。此外,允許定義函數或方法而不為其參數分配名稱,如下所示:

func NamelessParams(int, string) {}
登入後複製

有關這方面的更多詳細信息,請參閱關於未命名參數的討論Go?

或者,如果您的目標是建立一個框架,允許將值傳遞給具有指定名稱的參數(例如,將 API 參數對應到 Go 函數/方法參數),請考慮使用結構體或對應。這是因為結構體和映射允許分別透過 Value.FieldByName() 和 Type.FieldByName() 等方法檢索命名欄位和鍵。

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

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