將結構體切片轉換為空介面切片
由於類型原因,將結構體切片分配給空介面切片並不簡單不相容,如下所示code:
type MyStruct struct { // ... } var src []*MyStruct var dest []interface{} dest = src // Compilation error
出現此錯誤是因為編譯器將兩種類型識別為不相容。要解決此問題,必須手動複製每個元素:
for _, s := range src { dest = append(dest, s) }
儘管逐個複製元素很繁瑣,但這是必要的,因為將結構體轉換為接口涉及將結構體包裝在接口指針和類型中描述符。單獨複製每個元素可確保正確執行此包裝過程。
以上是在 Go 中如何將一片結構轉換為一片空介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!