Maison  >  Article  >  développement back-end  >  élimination des tranches de golang

élimination des tranches de golang

王林
王林original
2023-05-21 17:02:38481parcourir

Élimination des tranches de Golang

Dans le langage Go, la tranche est une structure de données très importante et couramment utilisée. Il est similaire à un tableau, mais plus flexible et plus pratique qu'un tableau. Les tranches peuvent être automatiquement étendues, tandis que la longueur des tableaux est immuable. Cependant, dans le processus de développement proprement dit, nous pouvons rencontrer des situations dans lesquelles nous devons éliminer un élément de la tranche. Dans cet article, nous explorerons comment effectuer des opérations de sélection de tranches dans le langage Go.

Opérations de base du découpage

Avant de comprendre comment supprimer un certain élément dans une tranche, nous devons comprendre certaines opérations de base du découpage.

Créer une tranche

En langage Go, vous pouvez créer une variable de type tranche via la fonction make(). Les paramètres de la fonction make() sont le type de tranche, la longueur de la tranche et la capacité de la tranche. La capacité de la tranche peut être omise et est par défaut la même que la longueur de la tranche.

s := make([]int, 5, 10)
// 创建一个长度为5、容量为10的int类型切片s

Accès aux éléments de tranche

Comme les tableaux, accédez aux éléments de la tranche via des indices.

s := []int{1, 2, 3, 4, 5}
fmt.Println(s[0]) // 输出1

Interception de tranches

En langage Go, les tranches peuvent être interceptées via s[i:j], où i est l'indice de début (inclus) et j est l'indice de fin (exclusif). Par exemple, s[2:5] représente une tranche commençant par l'élément d'index 2 et se terminant par l'élément d'index 4.

s := []int{1, 2, 3, 4, 5}
fmt.Println(s[1:3]) // 输出[2 3]

Ajouter à la tranche

En langage Go, vous pouvez utiliser la fonction append() pour ajouter des éléments à une tranche. Si l’ajout d’éléments à la tranche entraîne une capacité insuffisante, le tableau sous-jacent est automatiquement développé. Le premier paramètre de la fonction append() est la tranche à ajouter, et les paramètres suivants sont les valeurs à ajouter.

s := []int{1, 2, 3}
s = append(s, 4, 5)
fmt.Println(s) // 输出[1 2 3 4 5]

Copie de tranches

En langage Go, vous pouvez utiliser la fonction copy() pour copier une tranche dans une autre tranche. Le premier paramètre de la fonction copy() est la tranche cible et le deuxième paramètre est la tranche source. Si la longueur de la tranche source est supérieure à la longueur de la tranche cible, les n premiers éléments de la tranche source seront interceptés (n est la longueur de la tranche cible). Si la longueur de la tranche source est inférieure ou égale à la longueur de la tranche cible, les autres éléments de la tranche cible, à l'exception des éléments copiés, ne seront pas affectés.

s1 := []int{1, 2, 3}
s2 := make([]int, 2)
copy(s2, s1)
fmt.Println(s2) // 输出[1 2]

Élimination du découpage

Après avoir compris les opérations de base du découpage, nous pouvons commencer à explorer comment effectuer des opérations d'élimination de tranches dans le langage Go.

Méthode 1 : implémentée via la fonction append() et l'interception de tranche

Nous pouvons d'abord obtenir les parties avant et arrière de l'élément à supprimer via l'interception de tranche, puis les additionner via la fonction append().

func deleteSlice1(s []int, i int) []int {
    return append(s[:i],s[i+1:]...)
}

s := []int{1, 2, 3, 4, 5}
s = deleteSlice1(s, 2)
fmt.Println(s) // 输出[1 2 4 5]

Méthode 2 : implémentée via la fonction copy() et l'interception de tranche

Nous pouvons également implémenter l'opération d'élimination de tranche via la fonction copy(). Nous pouvons utiliser la fonction de copie pour copier les éléments suivants de l'élément à supprimer à la position de l'élément à supprimer, puis obtenir la première moitié et la seconde moitié grâce à l'opération de découpage et d'interception.

func deleteSlice2(s []int, i int) []int {
    copy(s[i:], s[i+1:])
    return s[:len(s)-1]
}

s := []int{1, 2, 3, 4, 5}
s = deleteSlice2(s, 2)
fmt.Println(s) // 输出[1 2 4 5]

Résumé

Dans cet article, en expliquant les opérations de base du découpage et deux méthodes de mise en œuvre des opérations d'élimination de tranches, nous espérons aider les lecteurs à mieux comprendre la structure des données de découpage et ses applications dans le langage Go. Dans le développement réel, le choix de différentes méthodes pour implémenter les opérations d'élimination de tranches en fonction de circonstances spécifiques peut améliorer l'efficacité et la maintenabilité du 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
Article précédent:requête golang mysqlArticle suivant:requête golang mysql