首頁 > 後端開發 > Golang > 如何在 Go 中將結構體切片分配給介面切片?

如何在 Go 中將結構體切片分配給介面切片?

Susan Sarandon
發布: 2024-11-30 19:19:15
原創
244 人瀏覽過

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

將結構體切片分配給介面切片

嘗試將結構體切片([]MyStruct) 指派給介面切片( []interface {}),您可能會遇到編譯時錯誤。這是因為結構體和介面有不同的記憶體表示形式。

結構體的字段在內存中相鄰存儲,而接口則存儲為兩個字對,一個用於類型信息,一個用於實際數據。這種差異阻止了直接賦值。

可能的解決方案:

  • 單獨複製元素:您可以手動迭代結構體切片並複製每個元素進入介面
  • 利用介麵包裝器:您可以建立一個實作interface{}介面並保存底層結構的包裝器類型。
  • 使用空接口:您可以將結構體切片分配給一個空接口,該接口可以保存任何類型的值。

以上是如何在 Go 中將結構體切片分配給介面切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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