首頁 > 後端開發 > Golang > 如何在 Go 中將結構體指標轉換為 Interface{} 並返回?

如何在 Go 中將結構體指標轉換為 Interface{} 並返回?

Barbara Streisand
發布: 2024-12-11 09:30:11
原創
832 人瀏覽過

How Can I Cast a Struct Pointer to an Interface{} and Back in Go?

將結構體指標轉換為介面

鑑於struct foo 和函數bar 具有不靈活的定義,此問題尋求解決方案將指向foo 的指標轉換為interface{} 以用作bar 中的參數。此外,在 bar 中轉換回 foo 結構體指標是必要的。

轉換為Interface{}

將&foo{} 轉換為Interface{},過程很簡單:

f := &foo{}
bar(f) // Every type implements interface{}.
登入後複製

轉換回*foo

要從介面{}檢索原始*foo,有兩種方法可用:

類型斷言

func bar(baz interface{}) {
    f, ok := baz.(*foo)
    if !ok {
        // baz was not of type *foo. The assertion failed.
    }

    // f is of type *foo
}
登入後複製

類型切換

以上是如何在 Go 中將結構體指標轉換為 Interface{} 並返回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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