Maison  >  Article  >  développement back-end  >  Comment déplacer des éléments entre les positions dans une Go Slice ?

Comment déplacer des éléments entre les positions dans une Go Slice ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 06:09:02582parcourir

How Do You Move Elements Between Positions in a Go Slice?

Manipulation des éléments de tranche dans Go : déplacer des éléments entre les positions

Dans Go, il est possible de modifier la position d'un élément dans une tranche. Cependant, cette tâche nécessite une approche légèrement différente par rapport aux autres langages de programmation.

Considérons le scénario suivant : vous disposez d'une tranche appelée slice et vous souhaitez déplacer l'élément de l'index 1 vers l'index 4. Pour y parvenir , vous devrez suivre ces étapes :

  1. Supprimez l'élément de sa position actuelle à l'aide de la fonction d'ajout. Cela se traduit par une nouvelle tranche avec l'élément exclu :
<code class="go">slice = append(slice[:1], slice[2:]...)</code>
  1. Créez une nouvelle tranche appelée newSlice qui inclut l'élément à la position souhaitée :
<code class="go">newSlice := append(slice[:4], 1)</code>
  1. Ajoutez les éléments restants de la tranche après l'élément inséré pour créer la tranche finale :
<code class="go">slice = append(newSlice, slice[4:]...)</code>

Cette approche garantit que la tranche d'origine est modifiée correctement. Dans votre code d'origine, vous avez commis une erreur à l'étape 2 en ajoutant 1 au début de newSlice, ce qui entraîne un résultat incorrect.

Pour simplifier le processus de déplacement d'éléments dans une tranche, envisagez d'utiliser une fonction d'assistance telle que celle ci-dessous :

<code class="go">func moveInt(array []int, srcIndex int, dstIndex int) []int {
    value := array[srcIndex]
    return insertInt(removeInt(array, srcIndex), value, dstIndex)
}</code>

Cette fonction encapsule les étapes ci-dessus et prend trois arguments : la tranche à modifier, l'index source et l'index de destination.

En utilisant cette fonction, vous peut simplifier votre code pour déplacer un élément dans une tranche :

<code class="go">slice = moveInt(slice, 1, 4)</code>

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!

Déclaration:
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