Rumah > Artikel > pembangunan bahagian belakang > Mari kita bincangkan tentang cara untuk memulakan struktur data GO (dengan contoh kod)
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.
GO menyediakan 2 kata kunci untuk memulakan struktur data
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 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:
Sebagai contoh, apabila kita memulakan, kita boleh menulis seperti ini
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
Menurut penjelasan, kita tahu bahawa jenis nilai pulangan
makeadalah 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
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
baharutelah menyelesaikan masalah itu
Menggunakan baharu untuk memulakan struktur data boleh ditulis seperti ini:Sesuaikan struktur dengan 2 ahli, umur dan nama
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 == 0nilai 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 == 0sifar jenis ini Nilai
Lihat penerangan kod sumber baharu
Kod sumber golang mengatakan bahawa parameter pertama baharu ialah jenis data, bukan nilai Dan nilai pulangan
baruialah 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*Jenis taip
[Cadangan berkaitan: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!