首頁 > 後端開發 > Golang > 在 Go 中如何將一片結構轉換為一片空介面?

在 Go 中如何將一片結構轉換為一片空介面?

DDD
發布: 2024-12-05 10:07:15
原創
381 人瀏覽過

How Can I Convert a Slice of Structs to a Slice of Empty Interfaces in Go?

將結構體切片轉換為空介面切片

由於類型原因,將結構體切片分配給空介面切片並不簡單不相容,如下所示code:

type MyStruct struct {
    // ...
}

var src []*MyStruct
var dest []interface{}
dest = src  // Compilation error
登入後複製

出現此錯誤是因為編譯器將兩種類型識別為不相容。要解決此問題,必須手動複製每個元素:

for _, s := range src {
    dest = append(dest, s)
}
登入後複製

儘管逐個複製元素很繁瑣,但這是必要的,因為將結構體轉換為接口涉及將結構體包裝在接口指針和類型中描述符。單獨複製每個元素可確保正確執行此包裝過程。

以上是在 Go 中如何將一片結構轉換為一片空介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板