Maison > développement back-end > Golang > La méthode de suppression d'élément ne fonctionne pas dans Golang

La méthode de suppression d'élément ne fonctionne pas dans Golang

WBOY
Libérer: 2024-02-09 09:33:18
avant
1082 Les gens l'ont consulté

删除元素方法在 Golang 中不起作用

l'éditeur php Banana vous présentera comment supprimer des éléments dans Golang. Dans Golang, la manière de supprimer des éléments n'est pas aussi simple que dans d'autres langages de programmation, mais nous pouvons y parvenir grâce à quelques astuces. Dans cet article, nous explorerons plusieurs méthodes courantes pour vous aider à supprimer facilement des éléments dans Golang et à améliorer l'efficacité de la programmation. Que vous soyez débutant ou développeur expérimenté, ces méthodes vous aideront. Découvrons-le ensemble !

Contenu de la question

J'ai un code simple pour supprimer des éléments d'une tranche :

package main

import "fmt"

func main() {
    values := []string{"1", "2", "3", "4", "5"}
    valuesresult := removeelementbyindex(values2, 0)
    fmt.printf("%v - %v\n", values, valuesresult)
}

func removeelementbyindex[t interface{}](a []t, i int) []t {
    return append(a[:i], a[i+1:]...)
}
Copier après la connexion

Mais le résultat est

[2 3 4 5 5] - [2 3 4 5]
Copier après la connexion

Pour une raison quelconque, les values changent mais je ne les change pas dans ma méthode (je suppose). S'il vous plaît, aidez-moi à résoudre ce problèmevalues 正在改变,但我没有在我的方法中改变它(我猜)。请帮我解决这个问题

解决方法

您确实更改了原始切片。如果附加操作的结果适合切片的容量,则 append

Solution de contournement

Vous avez modifié la tranche d'origine. Si le résultat de l'opération d'ajout correspond à la capacité de la tranche, l'opération append utilise la tranche d'origine. 🎜 🎜Si vous avez besoin de la tranche originale inchangée : 🎜
func removeElementByIndex[T interface{}](a []T, i int) []T {
    result := make([]T, len(a)-1)
    copy(result,a[:i])
    copy(result[i:],a[i+1:])
    return result
}
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:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal