首頁 > 後端開發 > Golang > 如何在 Go 中列印嵌套結構的值而不是指標?

如何在 Go 中列印嵌套結構的值而不是指標?

Patricia Arquette
發布: 2024-11-29 16:44:10
原創
267 人瀏覽過

How to Print the Value, Not the Pointer, of Nested Structs in Go?

在Go 中列印帶有指標的結構體值

在Go 中,當列印包含指針的結構體值時,通常的結構體值時,通常會列印指標位址的實際值。當嘗試檢查嵌套結構的內容時,這可能會出現問題。

如何列印B 結構體值而不是指針

要解決此問題,您可以有兩個選項:

  1. 實作Stringer介面:

    為A 和 B結構體實作 String() 方法。此方法傳回結構的格式化字串表示形式。在實作中,列印所需的值而不是指標。

    package main
    
    import "fmt"
    
    type A struct {
        a int32
        B *B
    }
    
    type B struct {
        b int32
    }
    
    func (aa *A) String() string {
        return fmt.Sprintf("A{a:%d, B:%v}", aa.a, *aa.B)
    }
    
    func (bb *B) String() string {
        return fmt.Sprintf("B{b:%d}", bb.b)
    }
    
    func main() {
        a := &A{a: 1, B: &B{b: 2}}
        fmt.Println(a)
    }
    登入後複製
  2. 手動列印值:

    存取實際值B 手動構造並直接列印。

    package main
    
    import "fmt"
    
    type A struct {
        a int32
        B *B
    }
    
    type B struct {
        b int32
    }
    
    func main() {
        a := &A{a: 1, B: &B{b: 2}}
        fmt.Printf("A{a:%d, B:{b:%d}}\n", a.a, a.B.b)
    }
    登入後複製

以上是如何在 Go 中列印嵌套結構的值而不是指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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