Cara menyediakan hirisan golang

王林
Lepaskan: 2023-05-13 11:02:37
asal
525 orang telah melayarinya

Golang ialah salah satu bahasa pengaturcaraan yang telah menarik perhatian ramai sejak beberapa tahun kebelakangan ini. Ia bukan sahaja mempunyai kecekapan tinggi dan keupayaan pemprosesan serentak yang sangat baik, tetapi juga mempunyai banyak kelebihan seperti mudah dipelajari dan sintaks yang ringkas. Sebagai salah satu komponen penting Golang, hirisan sering digunakan dalam pembangunan. Jadi, bagaimana untuk menyediakan kepingan di Golang? Mari lihat lebih dekat di bawah.

Apakah keping?

Di Golang, slice ialah struktur data yang serupa dengan tatasusunan, tetapi ia mempunyai fleksibiliti dan kebolehubahan yang lebih tinggi. Sekeping boleh dianggap sebagai tatasusunan dinamik, panjangnya tidak tetap, dan elemen boleh ditambah atau dipadam sesuka hati. Struktur asas kepingan adalah serupa dengan tatasusunan, tetapi ia bukan panjang tetap tetapi boleh dikembangkan secara dinamik.

Takrifan dan penggunaan kepingan

Sangat mudah untuk mentakrifkan kepingan dalam Golang Hanya gunakan "[]" untuk mengisytiharkannya adalah seperti berikut:

var a []int //Tentukan kepingan jenis int a

Anda juga boleh menggunakan fungsi make terbina dalam untuk mencipta kepingan dengan kapasiti awal 0, seperti berikut:

a := make([] int, 0) //Buat kepingan jenis int dengan kapasiti awal 0

Dapat dilihat bahawa parameter pertama fungsi make ialah jenis kepingan yang sepadan , parameter kedua ialah panjang kepingan, dan parameter ketiga Parameter pertama ialah kapasiti kepingan (pilihan). Panjang mewakili bilangan elemen pada masa ini dalam hirisan, dan kapasiti mewakili bilangan elemen hirisan yang boleh disimpan pada masa ini.

Seterusnya, kita boleh menambah elemen pada kepingan melalui fungsi tambah, seperti berikut:

a = tambah(a, 1) //Tambah elemen 1 untuk menghiris a

Kaedah tambah di sini ialah fungsi terbina dalam Golang, yang boleh digunakan untuk menambah elemen pada kepingan. Selepas menambah, elemen dalam kepingan berubah daripada 0 kepada 1.

Tugasan dan penyalinan hirisan

Di Golang, tugasan dan penyalinan hirisan adalah agak mudah. ​​Ia adalah penunjuk kepada tatasusunan yang mendasari, jadi apabila menetapkan atau menyalin, salin sahaja penunjuk hirisan. salinan tanpa membuat salinan tatasusunan asas.

Berikut ialah contoh:

a := []int{1,2,3} //Tentukan kepingan a
b := a //Tetapkan a kepada b
b[0] = 4 //Ubah suai nilai hirisan b kepada [4 2 3]
fmt.Println(a) //Keluarkan nilai a kepada [4 2 3]

Okay Anda boleh lihat bahawa selepas memberikan a kepada b, mengubah suai elemen dalam b akan menjejaskan nilai elemen dalam a. Sebaliknya, mengubah suai unsur dalam a juga akan mempengaruhi nilai unsur dalam b. Ini kerana a dan b menunjuk kepada tatasusunan asas yang sama.

Sudah tentu, jika anda perlu menyalin kepingan tanpa mengubah tatasusunan asal, anda boleh menggunakan fungsi salin untuk membuat salinan dalam, seperti berikut:

a := []int{ 1,2, 3}
b := make([]int, len(a))
copy(b, a) //Salin nilai slice a ke slice b
b[0] = 4
fmt.Println(a) //Nilai output a ialah [1 2 3]
fmt.Println(b) //Nilai output b ialah [4 2 3]

Anda boleh lihat, selepas menggunakan fungsi salin untuk menyalin nilai slice a ke slice b, mengubah suai elemen dalam b tidak akan menjejaskan nilai elemen dalam a.

Peluasan kepingan

Peluasan kepingan bermakna apabila kapasiti kepingan tidak mencukupi, ia perlu dikembangkan secara dinamik untuk menampung lebih banyak elemen. Apabila kapasiti hirisan tidak mencukupi, Golang akan mengagihkan semula ruang memori yang lebih besar di bahagian bawah dan menyalin elemen dalam kepingan asal ke memori baharu.

Apabila sekeping dikembang, Golang akan cuba mengembang mengikut peraturan berikut:

  1. Jika panjang baru kurang daripada atau sama dengan 2 kali panjang asal, kapasiti daripada kepingan baru akan menjadi panjang asal 2 kali.
  2. Jika tidak, kapasiti kepingan baharu ialah panjang tambah 1.

Berikut ialah contoh:

a := []int{0, 1, 2, 3 , 4, 5, 6, 7, 8, 9}
fmt.Println(len(a), cap(a)) //Output: 10 10

a = append(a , 10) //Tambah elemen
fmt.Println(len(a), cap(a)) //Output: 11 20

Seperti yang anda lihat, selepas menambah elemen 10 pada kepingan, kapasiti dikembangkan Pada 20, ia adalah dua kali ganda panjang asal.

Ringkasan

Slices dalam Golang ialah struktur data yang sangat praktikal yang mempunyai ciri yang serupa dengan tatasusunan, tetapi lebih fleksibel dan boleh diubah. Apabila menggunakan kepingan, kita perlu memahami pengetahuan asas definisi kepingan, tugasan dan penyalinan, dan pengembangan, dan membuat aplikasi yang munasabah berdasarkan keperluan sebenar. Saya percaya bahawa melalui pengenalan artikel ini, pembaca harus mempunyai pemahaman yang lebih mendalam tentang tetapan menghiris di Golang.

Atas ialah kandungan terperinci Cara menyediakan hirisan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan