Rumah > Artikel > pembangunan bahagian belakang > Satu artikel untuk memahami ruang letak golang secara menyeluruh
Artikel ini membawakan anda pengetahuan yang berkaitan tentang golang terutamanya mengenai pemegang tempat di golang. Rakan-rakan yang berminat harus melihatnya.
xdm, terdapat aksara kawalan format semasa menulis bahasa C/C++, seperti %s, %d, %c, %p, dll.
Apabila menulis golang, terdapat juga watak kawalan format yang sepadan, juga dipanggil ruang letak Untuk menulis ruang letak ini, anda perlu mempunyai data yang sepadan dengannya Anda tidak boleh main-main
Tulis demo untuk melihat kesan pemegang tempat di atas dan rupanya
type Animal struct { hobby string } func main() { name := "xiaomotong" age := 19 hh := Animal{"basketball"} fmt.Printf("name = %s , age = %d , hh = %v\n\n", name, age, hh) fmt.Printf("hh = %+v , hh= %#v\n\n", hh, hh) fmt.Printf("name = %T , age = %T , hh = %T\n\n", name, age, hh) fmt.Printf("%q", 0x8989) }
Kesan pelaksanaan kod di atas adalah seperti berikut:
# go run main.go name = xiaomotong , age = 19 , hh = {basketball} hh = {hobby:basketball} , hh= main.Animal{hobby:"basketball"} name = string , age = int , hh = main.Animal '覉'
Kita boleh lihat daripada kesan di atas:
%q mewakili nilai literal aksara yang dikelilingi oleh petikan tunggal, yang digunakan oleh Go Sintaks selamat dilepaskan Jika anda berminat dengan xdm, anda boleh cuba mencetak dan menyahpepijat untuk melihat kesannya
$s mewakili rentetan
$d mewakili perpuluhan. nombor
%v Menunjukkan format lalai
%+v menunjukkan bahawa apabila mencetak struktur, nama medan yang sepadan akan ditambah
%#v menunjukkan struktur data yang sepadan Perwakilan bahasa golang
Teruskan menulis demo untuk melihat kesan Geometri:
func main() { a := true num := 88 uni := 0x8989 fmt.Printf("%t\n", a) fmt.Printf("%b\n", num) fmt.Printf("%c\n", 0x8989) fmt.Printf("uni = %U , uni = %#U\n", uni, uni) }
Kesan pelaksanaan kod di atas adalah seperti berikut:
# go run main.go true 1011000 覉 uni = U+8989 , uni = U+8989 '覉'
Daripada kesan di atas kita boleh lihat:
%t Pemegang tempat yang mewakili Boolean
%b mewakili data binari
%c mewakili aksara yang diwakili oleh titik kod Unikod yang sepadan
%U bermakna data boleh ditukar kepada spesifikasi format Unikod, iaitu
%#U bermula dengan + bermakna data boleh ditukar ke dalam aksara yang sepadan dengan unicode. Teks dalam demo disebut jī
func main() { num := 888 fNum := 888.99 fmt.Printf("num = %2d , num = %07d\n", num, num) fmt.Printf("num = %x , num = %#x\n", num, num) fmt.Printf("num = %f , num = %.3f\n", fNum, fNum) }
Kesan pelaksanaan kod di atas adalah seperti berikut:
# go run main.go num = 888 , num = 0000888 num = 378 , num = 0x378 num = 888.990000 , num = 888.990
Dari atas Kita boleh lihat kesannya:
%2d bermaksud jumlah 2 digit, jika kurang daripada 2 digit, tambah sifar dalam hadapannya
%07d bermaksud jumlah 7 digit, jika kurang daripada 7 Digit didahului dengan sifar
%x mewakili perenambelasan, semua huruf kecil
%#x mewakili perenambelasan, didahului dengan 0x
%f mewakili data jenis titik terapung, lalainya ialah mengekalkan 6 tempat perpuluhan
%. 3f mewakili data jenis titik terapung, mengekalkan 3 tempat perpuluhan
func main() { ptr := "xiaomotong" fmt.Printf("ptr = %p , ptr = %#p\n", &ptr, &ptr) }
Kesan pelaksanaan kod di atas adalah seperti berikut:
# go run main.go ptr = 0xc42000e1e0 , ptr = c42000e1e0
%p mewakili alamat penuding heksadesimal, dengan 0x
Atas ialah kandungan terperinci Satu artikel untuk memahami ruang letak golang secara menyeluruh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!