取消引用欄位進行偵錯
列印包含指標的 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中文網其他相關文章!