在 Go 中,理解列印結構體變數位址的概念至關重要。讓我們深入研究一個特定的查詢及其解決方案。
查詢:
第一次遇到 Go 的使用者想要列印結構體變數 r 的位址。儘管使用了預期的 & 運算符,但輸出顯示 {15 6} 而不是預期的位址。
程式碼片段:
type Rect struct { width int name int } func main() { r := Rect{4, 6} p := &r p.width = 15 fmt.Println("-----", &p, r, p, &r) }
分析:
預設情況下,fmt.Println() 使用%v格式來處理透過列印字段來特殊構造。要直接列印地址,需要特定的格式字串。
解:
要印出 r 的位址,%p 動詞必須與格式一起使用細繩。此動詞專門表示列印指針值。
fmt.Printf("%p\n", &r)
這將正確輸出 r 的位址,例如 0x414020。
此外,可以使用以下方式將位址儲存在變數中以下語法:
addr := &r
現在,addr 將保存指向 r 的指標。
以上是如何正確列印Go中結構體的位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!