Wie füge ich einen Wert an einem bestimmten Index in ein Go-Slice ein, ohne andere Elemente zu beeinflussen?

DDD
Freigeben: 2024-11-19 06:57:03
Original
427 Leute haben es durchsucht

How to Insert a Value into a Go Slice at a Specific Index Without Affecting Other Elements?

Einen Wert in ein Slice an einem gegebenen Index einfügen

Frage:

Wie können wir einen Wert in a einfügen? spezifischer Index in einem Go-Slice ohne Einbeziehung anderer Elemente?

Problembeschreibung:

Angenommen, wir haben zwei Slices, Array1 und Array2, und wir möchten Array2[2 einfügen ] bei array1[1]. Wir möchten den Rest von Array1 unberührt lassen.

Hintergrund:

Frühere Techniken verwendeten den Doppelpunktoperator (:), aber er umfasst auch nachfolgende Elemente. Ziel dieses Tutorials ist es, eine umfassende Lösung bereitzustellen, die sich auf das Einfügen einzelner Werte an einem bestimmten Index konzentriert.

Lösung:

Verwendung des Pakets „slices.Insert“ (Go 1.21 ):

result := slices.Insert(slice, index, value)
Nach dem Login kopieren

Hinweis: 0 ≤ index ≤ len(slice)

Anhängen und Zuweisen verwenden

a = append(a[:index+1], a[index:]...)
a[index] = value
Nach dem Login kopieren

Hinweis: len(a) > 0 && Index < len(a)

Für Sonderfälle:

  • Wenn len(a) == index, tun Sie Folgendes:

    a = append(a, value)
    Nach dem Login kopieren
  • Wenn Sie am Index Null einfügen und mit einem int-Slice arbeiten, gehen Sie wie folgt vor:

    a = append([]int{value}, a...)
    Nach dem Login kopieren

Benutzerdefinierte Funktion:

func insert(a []int, index int, value int) []int {
    if len(a) == index {
        return append(a, value)
    }
    a = append(a[:index+1], a[index:]...)
    a[index] = value
    return a
}
Nach dem Login kopieren

Generische Funktion:

func insert[T any](a []T, index int, value T) []T {
    ...
    return a
}
Nach dem Login kopieren

Beispiel:

slice1 := []int{1, 3, 4, 5}
slice2 := []int{2, 4, 6, 8}
slice1 = append(slice1[:2], slice1[1:]...)
slice1[1] = slice2[2]
fmt.Println(slice1) // [1 6 3 4 5]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie füge ich einen Wert an einem bestimmten Index in ein Go-Slice ein, ohne andere Elemente zu beeinflussen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage