反思 Go 中的參數名稱
人們經常希望確定 Go 方法的參數名稱。然而,在嘗試透過 TMethod 函數取得此資訊後,使用者發現僅傳回結構名稱(在本例中為 testData)。
了解參數名稱的缺失
在 Go 中,方法或函數參數的名稱不會明確儲存在執行時間資訊中。這是因為參數名稱對於方法或函數的呼叫者來說並不重要。重點是參數類型及其順序。
具有相同參數和結果類型的兩個函數具有相同的類型,無論其參數名稱為何。例如:
func f1(a int) {} func f2(b int) {} fmt.Println(reflect.TypeOf(f1) == reflect.TypeOf(f2)) // Prints true
參數命名的替代方法
如果所需的功能是建立一個框架來呼叫具有「命名」參數的函數,則存在替代參數的函數,則存在替代方法:
進一步見解
了解更多詳細資訊資訊和範例,請參考以下資源:
以上是為什麼我無法從 Go 的 `reflect.TypeOf` 取得參數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!