Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mencetak Alamat Struct dalam Go dengan Betul?
Dalam Go, memahami konsep mencetak alamat pembolehubah struct adalah penting. Mari kita mendalami pertanyaan khusus dan penyelesaiannya.
Pertanyaan:
Seorang pengguna yang menemui Go buat kali pertama mahu mencetak alamat pembolehubah struct, r. Walaupun menggunakan jangkaan & pengendali, output menunjukkan {15 6} dan bukannya alamat yang dijangkakan.
Coretan Kod:
type Rect struct { width int name int } func main() { r := Rect{4, 6} p := &r p.width = 15 fmt.Println("-----", &p, r, p, &r) }
Analisis:
Secara lalai, fmt.Println() menggunakan format %v yang merawat struct khas dengan mencetak bidang mereka. Untuk mencetak alamat secara langsung, rentetan format tertentu diperlukan.
Penyelesaian:
Untuk mencetak alamat r, kata kerja %p mesti digunakan dengan format rentetan. Kata kerja ini secara khusus menunjukkan pencetakan nilai penunjuk.
fmt.Printf("%p\n", &r)
Ini akan mengeluarkan alamat r dengan betul, seperti 0x414020.
Selain itu, alamat boleh disimpan dalam pembolehubah menggunakan sintaks berikut:
addr := &r
Kini, addr akan menahan penunjuk ke r.
Atas ialah kandungan terperinci Bagaimana Mencetak Alamat Struct dalam Go dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!