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

Susan Sarandon
Lepaskan: 2024-11-19 01:36:02
asal
454 orang telah melayarinya

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)
Salin selepas log masuk

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

Menggunakan Operator Tambahan dan Tugasan:

a = append(a[:index+1], a[index:]...)
a[index] = value
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan