Memasukkan Nilai ke dalam Slice pada Indeks Tertentu
Masalah:
Diberi dua kepingan, tatasusunan1 dan tatasusunan2, anda ingin memasukkan elemen daripada tatasusunan2 ke dalam tatasusunan1 pada indeks tertentu, mengalihkan elemen seterusnya dalam array1 dengan sewajarnya. Sebagai contoh, anda ingin memasukkan tatasusunan2[2] (6) ke dalam tatasusunan1[1] (sebelum 3), menghasilkan [1, 6, 3, 4, 5]. Bagaimanakah anda boleh mencapai ini?
Penyelesaian:
Memasukkan nilai ke dalam kepingan dalam Go boleh dilakukan dalam beberapa cara.
Menggunakan Pakej Slices (Go 1.21 ):
result := slices.Insert(slice, index, value)
Perhatikan bahawa indeks mestilah dalam julat yang sah (0 hingga panjang kepingan). Kaedah ini mengelakkan keperluan untuk mengalih elemen secara manual.
Menggunakan Lampiran dan Tugasan:
a = append(a[:index+1], a[index:]...) a[index] = value
Penyelesaian ini melibatkan penggunaan tambah untuk mencipta kepingan baharu yang mengandungi indeks pertama elemen hirisan asal diikuti dengan elemen untuk dimasukkan dan elemen selebihnya dari indeks dan seterusnya. Kemudian, nilai pada indeks yang diingini ditetapkan kepada nilai baharu.
Menggunakan Single Untuk Gelung:
for i := len(a); i > index; i-- { a[i] = a[i-1] } a[index] = value
Kaedah ini berulang ke atas kepingan, beralih setiap elemen satu kedudukan ke kanan dari indeks asalnya sehingga titik sisipan dicapai. Nilai untuk dimasukkan kemudiannya ditetapkan pada indeks yang ditentukan.
Memilih Pendekatan yang Tepat:
Bergantung pada keperluan dan pertimbangan prestasi, anda boleh memilih pendekatan yang paling sesuai untuk memasukkan nilai ke dalam kepingan dalam Go. Pakej slices, tersedia dalam Go 1.21 , menyediakan penyelesaian yang cekap dan mudah dengan pengendalian ralat terbina dalam. Walau bagaimanapun, untuk senario yang lebih mudah atau apabila menggunakan versi Go yang lebih lama, kaedah lain menawarkan pilihan fleksibiliti dan pengoptimuman prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Elemen ke dalam Go Slice pada Indeks Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!