我正在嘗試創建一個元素數組,其類型僅在運行時已知(pkg API 獲取 json 中的元素并轉換為結構)。我有一個類似下面的輔助函數,它將一個接口作為參數,并在調用 make 時嘗試獲取接口的類型。golang 編譯器似乎不喜歡它。var whatAmI = func(i interface{}) { a := reflect.TypeOf(i) //var typ reflect.Type = a b := make (a, 10) //10 elem with type of i //b := new (typ) fmt.Printf ("a: %v b: %v", a, b)}prog.go:21:14: a 不是類型我嘗試了各種反射組合,但到目前為止沒有幫助。在我看來,這可能是一個常見的問題。我該如何解決/解決這個問題?
2 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
獲取給定元素類型值的切片的類型v
:
sliceType?:=?reflect.SliceOf(reflect.TypeOf(v))
創建一個具有長度和容量的切片(此處均為 10)。
slice:=?reflect.MakeSlice(sliceType,?10,?10)
根據您的操作,您可能希望通過調用 reflect.Value 上的 Interface() 來獲取實際的切片值:
s?:=?slice.Interface()
- 2 回答
- 0 關注
- 150 瀏覽
添加回答
舉報
0/150
提交
取消