Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memasukkan Nilai ke dalam Slice pada Indeks Tertentu dalam Go?
Masalah:
Diberi dua keping integer, tatasusunan1 dan tatasusunan2 , matlamatnya adalah untuk memasukkan elemen daripada tatasusunan2 pada indeks tertentu dalam tatasusunan1 sambil mengekalkan susunan elemen yang sedia ada. Dalam contoh yang disediakan, ini bermakna memasukkan tatasusunan2[2], iaitu 6, pada tatasusunan1[1], menghasilkan tatasusunan1 menjadi [1, 6, 3, 4, 5].
Penggunaan Penyelesaian the : Operator:
Pendekatan tradisional untuk memasukkan nilai ke dalam kepingan melibatkan penggunaan operator : untuk mencipta kepingan baharu. Walau bagaimanapun, teknik ini biasanya menghasilkan pemasukan elemen tambahan, yang bukan tingkah laku yang diingini dalam kes ini.
Penyelesaian Alternatif:
1. Go 1.21 slices.Insert Function:
Dengan keluaran Go 1.21, fungsi slices.Insert khusus telah diperkenalkan yang memudahkan proses memasukkan nilai ke dalam kepingan. Sintaksnya ialah:
result = slices.Insert(slice, index, value)
Fungsi ini mengambil tiga argumen: hirisan asal, indeks di mana nilai itu hendak disisipkan dan nilai itu sendiri. Ia memasukkan nilai pada indeks yang ditentukan, mengalihkan sebarang elemen berikutnya dalam hirisan ke kanan.
2. Kemasukan Manual:
Pendekatan lain melibatkan proses dua langkah:
3. Fungsi Generik:
Sisipan fungsi generik boleh dilaksanakan untuk mengendalikan hirisan apa-apa jenis:
func insert[T any](a []T, index int, value T) []T
Fungsi ini mengikut pendekatan yang serupa dengan kaedah pemasukan manual tetapi memberikan kefleksibelan dengan membenarkan ia digunakan dengan kepingan pelbagai jenis.
4. Menggunakan Make and Copy:
Pilihan lain ialah menggunakan fungsi make untuk mencipta kepingan baharu dengan kapasiti yang dikehendaki dan kemudian gunakan fungsi salin untuk menyalin elemen sedia ada sambil memasukkan nilai pada indeks yang ditentukan :
b := make([]int, len(a)+1) copy(b[:index], a) b[index] = value copy(b[index+1:], a[index:])
Tanda aras:
Tanda aras prestasi menunjukkan bahawa fungsi slice.Insert adalah yang paling cekap, diikuti dengan fungsi sisipan generik. Secara keseluruhan, kaedah yang paling sesuai bergantung pada keperluan khusus program dan versi Go yang digunakan.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Nilai ke dalam Slice pada Indeks Tertentu dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!