首頁 >後端開發 >Golang >如何列印 Go 結構中指標的解引用值以進行有效調試?

如何列印 Go 結構中指標的解引用值以進行有效調試?

Susan Sarandon
Susan Sarandon原創
2024-11-06 08:43:021022瀏覽

How Can I Print Dereferenced Values of Pointers in Go Structs for Effective Debugging?

取消引用欄位進行偵錯

列印包含指標的 Go 結構體時,輸出通常顯示記憶體位址而不是實際值。為了改進調試,最好列印取消引用的值。

解決方案:使用 go-spew 套件

go-spew 套件提供了一個方便的解決方案。它可用於轉儲結構體,包括作為指標的字段,並顯示取消引用的值。

範例:

考慮以下Go 結構體:

package main

import (
  "github.com/davecgh/go-spew/spew"
)

type (
  SomeStruct struct {
    Field1 string
    Field2 int
    Field3 *somePointer
  }
  somePointer struct {
    field string
  }
)

在main 函數中,建立SomeStruct 的實例並將其傳遞給spew .Dump:

func main() {
  s := SomeStruct{
    Field1: "Yahoo",
    Field2: 500,
    Field3: &somePointer{"I want to see what is in here"},
  }
  spew.Dump(s)
}

這將列印以下輸出:

(main.SomeStruct) {
 Field1: (string) "Yahoo",
 Field2: (int) 500,
 Field3: (*main.somePointer)(0x2102a7230)({
  field: (string) "I want to see what is in here"
 })
}

所需的解除引用值(「我想看看這裡有什麼」)現在在Field3 欄位下可見。這允許在調試期間輕鬆檢查複雜結構中的指標。

以上是如何列印 Go 結構中指標的解引用值以進行有效調試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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