Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Satu artikel untuk memahami ruang letak golang secara menyeluruh

Satu artikel untuk memahami ruang letak golang secara menyeluruh

藏色散人
藏色散人ke hadapan
2023-03-16 15:47:022656semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang golang terutamanya mengenai pemegang tempat di golang. Rakan-rakan yang berminat harus melihatnya.

Satu artikel untuk memahami ruang letak golang secara menyeluruh

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

Pada asasnya pemegang tempat biasa

  • %s
  • %d
  • %v, %v+, %+v
  • %T, %q

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

Pemegang tempat yang kurang digunakan

  • %t
  • %b
  • %c
  • %U , %#U

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

Gunakan ruang letak untuk asas dan titik terapung

  • %2d, %07d
  • %x, %#x
  • %f , %.3f
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

Pemegang tempat penuding

  • %p
  • %# p
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!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam