在Go 中使用自訂類型時,取得其字串表示形式以進行動態操作或方便程式碼重構。雖然使用 fmt.Sprintf("%T", ID{}) 是一種簡單的方法,但它涉及實例化類型,這可能是不可取的。
相反,請考慮使用反射套件來實現這一點。透過利用reflect.TypeOf函數並使用指向類型的指針,您可以使用Type.Elem()來取得類型的基底類型或元素類型。例如:
t := reflect.TypeOf((*ID)(nil)).Elem() name := t.Name() fmt.Println(name)
這種方法避免了實例化的需要,也可以應用在介面上。從指向類型的指標開始,您可以導覽至其底層具體類型。
運行提供的範例程式碼將輸出ID 類型的字串表示形式:
ID
需要注意的是,如果類型是,Type.Name() 可能會傳回空字串未命名。這通常發生在沒有名稱定義類型的情況下,例如使用匿名結構或函數結果時。
以上是如何在不實例化的情況下以程式設計方式取得 Go 類型的字串表示形式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!