據說可以interface{}代表Go中的任何類型。例如,讓我們考慮一個Marshal函數,encoding/json該函數用于將Go數據結構轉換為JSON字符串。它的定義是func Marshal(v interface{}) ([]byte, error) 但是我們將一個結構作為參數傳遞給它,如下所示。type hello struct{ Message string}data,err:= json.Marshal(hello{Message:'Hello world'})Go如何處理呢?
1 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
答案是運行時反射。
從文檔:
包反射實現了運行時反射,從而允許程序處理任意類型的對象。典型的用法是使用靜態類型interface {}獲取值,并通過調用TypeOf來提取其動態類型信息,該類型將返回Type。
- 1 回答
- 0 關注
- 256 瀏覽
添加回答
舉報
0/150
提交
取消