Rumah >pembangunan bahagian belakang >Golang >Pengenalan terperinci kepada prinsip pelaksanaan dan penggunaan biasa hirisan golang
Bahasa Slice in Go ialah jujukan dinamik yang dilaksanakan berdasarkan tatasusunan, yang boleh meningkatkan atau mengurangkan saiznya secara dinamik semasa masa jalan dan menyokong operasi biasa pada data yang dihiris, seperti operasi tambah, sisip, sambung, salin dan potong . Artikel ini akan memperkenalkan prinsip pelaksanaan dan penggunaan biasa slice secara terperinci.
1. Struktur data Slice
Dalam bahasa Go, struktur data slice terdiri daripada tiga bahagian: penunjuk kepada tatasusunan asas, panjang kepingan dan kapasiti kepingan. Definisi khusus adalah seperti berikut:
type slice struct {
ptr *int // 指向 slice 引用的底层数组 len int // slice 的长度 cap int // slice 的容量
}
Antaranya, pointer ptr menghala ke kedudukan permulaan tatasusunan asas, len mewakili panjang kepingan, dan penutup mewakili Kapasiti kepingan. Panjang hirisan mewakili bilangan elemen yang disimpan dalam hirisan pada masa ini, dan kapasiti hirisan mewakili bilangan elemen yang boleh disimpan dalam tatasusunan asas semasa.
2. Permulaan hirisan
Dalam bahasa Go, terdapat dua cara untuk mencipta hirisan: gunakan fungsi terbina dalam make() untuk mencipta hirisan, atau gunakan literal hirisan untuk mengisytiharkan dan memulakan hirisan secara langsung.
Gunakan fungsi terbina dalam make() untuk mencipta kepingan:
slice := make([]type, length, capacity)
Fungsi make() akan mencipta tatasusunan asas, dan mengembalikan kepingan yang menunjuk ke tatasusunan, yang parameternya masing-masing mewakili jenis elemen kepingan, panjang kepingan dan kapasiti kepingan. Antaranya, kapasiti hirisan boleh diabaikan Jika ia ditinggalkan, ia akan lalai pada panjang yang sama, menunjukkan bahawa kepingan itu tidak mempunyai ruang kosong.
Gunakan literal slice untuk mengisytiharkan dan memulakan hirisan:
slice := []type{elements}
Slice yang dibuat oleh literal slice tidak perlu menentukan panjang dan kapasiti, Pergi Bahasa secara automatik mengira panjang dan kapasiti kepingan berdasarkan bilangan elemen dalam kepingan.
3. Operasi asas kepingan
1 Dapatkan elemen dalam kepingan
Gunakan operator subskrip [] untuk mendapatkan elemen dengan subskrip yang ditentukan dalam kepingan. Subskrip adalah dari Bermula dari 0, nilai maksimum boleh len-1. Contohnya:
slice := []int{1, 2, 3}
fmt.Println(slice[0]) // Output: 1
2 🎜>
Anda boleh menggunakan kata kunci gelung dan julat untuk untuk melintasi elemen dalam kepingan. Contohnya: slice := []int{1, 2, 3}for index, value := range slice {
fmt.Printf("index:%d value:%d\n", index, value)} 3 , Tambah elemen untuk menghiris Gunakan fungsi terbina dalam append() untuk menambah elemen untuk menghiris. Fungsi append() akan mengembalikan kepingan baharu dan kepingan asal tidak akan diubah suai. Contohnya: slice1 := []int{1, 2, 3}
slice2 := append(slice1, 4, 5)
fmt.Println(slice1) // Output: [ 1 2 3]
fmt.Println(slice2) //Output: [1 2 3 4 5]
slice2 := make([]int, len(slice1))
copy(slice2, slice1)
fmt.Println(slice2) //Output: [1 2 3]
slice2 := slice1[1:]
fmt.Println(slice2) // Output: [2 3]
Atas ialah kandungan terperinci Pengenalan terperinci kepada prinsip pelaksanaan dan penggunaan biasa hirisan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!