Maison > développement back-end > Golang > Comment insérer une valeur dans une Go Slice à un index spécifique ?

Comment insérer une valeur dans une Go Slice à un index spécifique ?

Susan Sarandon
Libérer: 2024-11-19 01:36:02
original
523 Les gens l'ont consulté

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

Insérer une valeur dans une tranche à un index donné

Dans Go, l'insertion d'une valeur dans une tranche à un index spécifique peut être effectuée en utilisant diverses méthodes :

Utilisation de la fonction slices.Insert (Go 1.21 et Plus tard :

result = slices.Insert(slice, index, value)
Copier après la connexion

Remarque : l'index doit être compris entre 0 et len(slice).

Utilisation des opérateurs d'ajout et d'affectation :

a = append(a[:index+1], a[index:]...)
a[index] = value
Copier après la connexion

Utilisation de l'insert Fonction :

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
}
Copier après la connexion

Benchmarks :

Les résultats de référence fournis indiquent que la fonction slices.Insert est la plus efficace pour les petites tailles de tranches. Pour les tranches plus grandes, les fonctions d'ajout et d'insertion fonctionnent mieux.

Gestion de l'index hors plage :

  • tranches. L'insertion panique si l'index est hors plage .
  • Les fonctions d'ajout et d'insertion redimensionnent automatiquement la tranche si l'index est supérieur à len(slice).

Génériques (Go 1.18 et versions ultérieures) :

func insert[T any](a []T, index int, value T) []T {
    // Similar to the non-generic function
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal