Sisipkan Nilai ke dalam Slice pada Indeks Diberi
Dalam Go, memasukkan nilai ke dalam kepingan pada indeks tertentu memerlukan pertimbangan yang teliti terhadap panjang slice, kapasiti dan sama ada indeks berada dalam hadnya.
Memasukkan pada Indeks Tersedia
Jika indeks yang anda ingin masukkan berada dalam julat elemen sedia ada kepingan, anda boleh menggunakan pendekatan berikut:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
Pendekatan ini:
Memasukkan pada Indeks Baharu
Jika indeks yang anda ingin masukkan adalah lebih besar daripada panjang semasa kepingan, anda perlu mengembangkan kapasiti kepingan untuk menampung elemen baharu.
index := 7 if index > cap(slice1) { newCap := cap(slice1) * 2 // Double the capacity slice1 = append(make([]int, len(slice1), newCap), slice1...) } slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
Pendekatan ini:
Memasukkan pada Penghujung Slice
Untuk memasukkan pada hujung hirisan, anda boleh tambah nilai baharu:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1, value)
Menggunakan 'hirisan' Pakej (untuk Go 1.21 )
Untuk Go versi 1.21 dan ke atas, anda boleh menggunakan fungsi slices.Insert() daripada pakej github.com/golang/exp/slices:
import "github.com/golang/exp/slices" slice1 := []int{1, 3, 4, 5} slices.Insert(slice1, index, value)
Contoh:
array1 := []int{1, 3, 4, 5} array2 := []int{2, 4, 6, 8} index := 1 // Index to insert at value := array2[2] // Value to insert // Insert value into array1 at index slice1 := array1[:index+1] slice2 := array1[index:] slice1 = append(slice1, value) slice1 = append(slice1, slice2...) array1 = slice1 // Result: [1, 6, 3, 4, 5]
Atas ialah kandungan terperinci Bagaimanakah anda memasukkan nilai ke dalam kepingan Go pada indeks tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!