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

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

Barbara Streisand
Barbara Streisand原創
2024-12-11 09:30:11831瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn