Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod)

Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod)

藏色散人
藏色散人ke hadapan
2023-01-03 16:32:283390semak imbas

Artikel ini akan memperkenalkan kepada anda kaedah memulakan struktur data dalam bahasa GO menyediakan 2 kata kunci untuk memulakan struktur data. Mari kita lihat cara menggunakannya~ Saya harap ia akan membantu semua orang.

Bagaimanakah anda memulakan struktur data semasa pengekodan menggunakan golang?

GO menyediakan 2 kata kunci untuk memulakan struktur data

  • baharu
  • buat

Tetapi kadangkala saya juga menggunakan kurungan kerinting untuk memulakan secara langsung, contohnya:

name := []string{"xiaomotong","bob","marry"}

Dalam kes di atas, sudah jelas bahawa medan perlu diisi semasa nilai permulaan, anda boleh gunakan kaedah di atas, tetapi dalam kebanyakan kes semasa bekerja, data masih tidak diketahui, dan kebanyakan masa kedua-dua kaedah di atas masih akan digunakan

buat

buat Ya Kata kunci yang disediakan oleh golang digunakan terutamanya untuk memulakan struktur data terbina dalam tidak boleh dimulakan Jenis data yang boleh dimulakan dengan membuat ialah:

  • slice slice
  • map Hash table.
  • saluran saluran

Sebagai contoh, apabila kita memulakan, kita boleh menulis seperti ini

  • untuk memulakan kepingan dan mengisi dalam nilai len, nilai cap Selain dua nilai ini, struktur data asas bagi hirisan juga mempunyai penunjuk, yang menunjukkan kepada tatasusunan dasar penunjuk struktur menunjuk ke hmap Struktur Jika anda berminat dengan ahli khusus xdm dalam badan, anda boleh membaca artikel sejarah saya
  • Mulakan saluran ch ini ialah penunjuk struktur yang menunjuk ke an hchan. Anda juga boleh membaca artikel sejarah saya untuk mendapatkan butiran
Kami melihat penjelasan kod sumber
strs := make([]string, 0, 10)myMap := make(map[string]string, 10)ch := make(chan struct{}, 10)
make

dan kami dapat melihat bahawa make menyokong penciptaan dan permulaan daripada 3 jenis di atas

Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod)Menurut penjelasan, kita tahu bahawa jenis nilai pulangan

make

adalah konsisten dengan jenis parameter yang diisi, apa yang kami isi ialah jenis hirisan, jadi nilai pulangan adalah jenis hirisan yang sepadan dengan jenis lain juga adalah jenis yang kami harapkan, tiada masalah

baharu

Jadi mengapa perlu untuk memulakan struktur data dengan make new Apa yang anda lakukan?

Ikan Gemuk Berhati-hati dapat melihat bahawa seperti yang dinyatakan sebelum ini, make hanya sesuai untuk memulakan struktur data terbina dalam yang disediakan oleh golang Ia adalah terhad untuk struktur data tersuai diperlukan

baharu

telah menyelesaikan masalah itu

Menggunakan baharu untuk memulakan struktur data boleh ditulis seperti ini:

Sesuaikan struktur dengan 2 ahli, umur dan nama
  • menggunakan baharu untuk memulakan T dan mengembalikan penunjuk kepada struktur
type T struct{
    age int
    name string}func main(){

    t := new(T)
    fmt.Println("t.name == ",t.name)
    fmt.Println("t.age == ",t.age)}
Kesan pelaksanaan program adalah seperti berikut:

Sudah tentu, struktur data telah dimulakan untuk saya, tetapi data semuanya
# go run main.got.name ==t.age ==  0
nilai sifar

Sudah tentu kita juga boleh menulis seperti ini:

func main(){

    a := new(int)
    fmt.Println("a == ",a)
    fmt.Println("*a == ",*a)}
Program Kesan pelaksanaan adalah seperti berikut:

Menurut hasil pelaksanaan program, kita tahu bahawa baru mengembalikan penunjuk, dan nilai yang sepadan pada alamat memori yang ditunjukkan oleh penuding ini ialah
# go run main.goa ==  0xc420018078
*a ==  0
sifar jenis ini Nilai

Lihat penerangan kod sumber baharu

Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod)Kod sumber golang mengatakan bahawa parameter pertama baharu ialah jenis data, bukan nilai Dan nilai pulangan

baru

ialah penunjuk yang memperuntukkan memori nilai sifar mengikut jenis parameter > Oleh itu, struktur data baharu yang kita lihat di atas dan data yang dicetak ialah Nilai sifar jenis sepadan

Perbezaan antara buatan dan baharu

Akhir sekali, mari kita selesaikan perbezaan antara buat dan baharu untuk mendalami kesan

make Hanya boleh digunakan untuk memulakan jenis data terbina dalam
  • slice
    • peta
    • chan
    • Dan baru boleh memperuntukkan sebarang jenis data (termasuk jenis data tersuai)

    jadikan pulangan sebagai rujukan, iaitu
  • Jenis
  • Taip, baharu mengembalikan penunjuk, iaitu

    *Jenis taip

    [Cadangan berkaitan:
  • Pergi tutorial video
]

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod). 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