首頁 > 後端開發 > Golang > 主體

如何在偵錯過程中顯示 Go 結構體中指標欄位的底層值?

Susan Sarandon
發布: 2024-11-07 14:27:03
原創
221 人瀏覽過

How Can I Display the Underlying Values of Pointer Fields in Go Structs During Debugging?

偵錯指標欄位

在 Go 中,列印包含指標欄位的結構通常會輸出記憶體位址而不是實際值。這在調試過程中可能會很不方便,尤其是在處理大量指標欄位時。

取消引用指標欄位

要顯示指標欄位的基礎值,一種選擇是手動使用星號運算子 (*) 取消引用每個欄位。然而,對於具有多個指標欄位的結構體來說,這種方法變得乏味。

使用 go-spew

Go 提供了一個強大的工具來調試此類場景:go-spew 套件。該套件提供了一種深入研究任何值的結構的簡單方法。

範例

考慮以下程式碼:

package main

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

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

type somePointer struct {
    field string
}

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"
 })
}
登入後複製

如您所見,go-spew 套件提供了更詳細和結構化的輸出,包括指標欄位的基礎值。這使得調試和理解結構的內容變得更加容易。

以上是如何在偵錯過程中顯示 Go 結構體中指標欄位的底層值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!