Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memasukkan Nilai ke dalam Go Slice pada Indeks Tertentu?

Bagaimana untuk Memasukkan Nilai ke dalam Go Slice pada Indeks Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-11-19 01:36:02542semak imbas

How to Insert a Value into a Go Slice at a Specific Index?

Memasukkan Nilai ke dalam Slice pada Indeks Diberi

Dalam Go, memasukkan nilai ke dalam kepingan pada indeks tertentu boleh dilakukan menggunakan pelbagai kaedah:

Menggunakan kepingan. Fungsi Sisipkan (Go 1.21 dan Kemudian):

result = slices.Insert(slice, index, value)

Nota: indeks hendaklah antara 0 dan len(slice).

Menggunakan Operator Tambahan dan Tugasan:

a = append(a[:index+1], a[index:]...)
a[index] = value

Menggunakan sisipan Fungsi:

func insert(a []int, index int, value int) []int {
    if index == len(a) { // Nil or empty slice, or after last element
        return append(a, value)
    }
    a = append(a[:index+1], a[index:]...) // Step 1+2
    a[index] = value                      // Step 3
    return a
}

Tanda Aras:

Hasil penanda aras yang disediakan menunjukkan bahawa fungsi slice.Insert adalah yang paling berkesan untuk saiz kepingan kecil. Untuk kepingan yang lebih besar, fungsi tambah dan sisip berfungsi lebih baik.

Mengendalikan Indeks Di Luar Julat:

  • hirisan.Sisipkan panik jika indeks berada di luar julat .
  • Fungsi tambah dan sisipkan secara automatik mengubah saiz kepingan jika indeks lebih besar daripada len(slice).

Generik (Pergi 1.18 dan Kemudian):

func insert[T any](a []T, index int, value T) []T {
    // Similar to the non-generic function
}

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Nilai ke dalam Go Slice pada Indeks Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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