首頁 >後端開發 >Golang >Go 反射可以從字串名稱衍生出型別嗎?

Go 反射可以從字串名稱衍生出型別嗎?

Linda Hamilton
Linda Hamilton原創
2024-12-23 13:02:11867瀏覽

Can Go Reflection Derive a Type from its String Name?

反射:從名稱取得型態表示

問題:

在Go 中,是否可以衍生型別使用名稱來表示資料類型反射?

答案:

這個問題的答案取決於提出問題的上下文。

運行時:

如果類型名稱在運行時可作為字符串使用,則它是不可能使用反射來獲取其類型表示。這是因為未直接引用的類型可能不會包含在最終的可執行二進位檔案中。

在「編碼」時間:

但是,如果類型名稱是在編碼或代碼產生階段已知,可能取得其類型表示而不建立該變數type.

這可以透過取得類型的Type 指針,建立類型化的nil 指標值,然後使用Type.Elem() 導航到指標的基底類型來實現。產生的類型描述符將與透過建立並反映該類型的變數所獲得的類型描述符相同。

範例:

t := reflect.TypeOf((*YourType)(nil)).Elem()

以上是Go 反射可以從字串名稱衍生出型別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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