Maison > développement back-end > Golang > le corps du texte

Savoir comment les éléments sont référencés dans les boucles de plage pour éviter les pièges courants en Go

Patricia Arquette
Libérer: 2024-11-19 00:28:02
original
773 Les gens l'ont consulté

Know How Elements Are Referenced in Range Loops to Avoid Common Pitfalls in Go

Salut la communauté Dev.to ! ?

Si vous avez déjà travaillé avec des boucles de plage dans Golang, vous avez peut-être rencontré des bugs subtils mais frustrants. Ceux-ci proviennent souvent de la façon dont les éléments sont référencés dans la boucle. En tant que développeurs Go, comprendre ce comportement est crucial pour écrire du code propre et sans bug.

Dans mon dernier article, je plonge dans :

  • Comment les boucles de plage gèrent le référencement des éléments en coulisses.
  • Les erreurs courantes commises par les développeurs (comme les modifications involontaires).
  • Conseils pratiques et exemples de codes pour éviter ces écueils.

Voici un aperçu d'un problème courant :

func getAvatarUrl(characterId int) string{
    // Simulate getting URL
    return fmt.Sprintf("https://base-url/%d", characterId)
}
type CharacterInfo struct {
    id          int
    characterName string
    avatarUrl   string
}
charactersOfGOT := []CharacterInfo{
    {id: 1, characterName: "Jon Snow"},
    {id: 2, characterName: "Daenerys Targaryen"},
    {id: 3, characterName: "Arya Stark"},
    {id: 4, characterName: "Tyrion Lannister"},
}

for _, charInfo := range charactersOfGOT {
    charInfo.avatarUrl = getAvatarUrl(charInfo.id)
}

for _, charInfo := range charactersOfGOT {
    fmt.Printf("Id: %d Name: %s, avatar: %s\n", charInfo.id, charInfo.characterName, charInfo.avatarUrl)
}
Copier après la connexion

Pourquoi cela ne donne-t-il pas ce que vous attendez ? ? Si vous avez été confronté à un défi similaire, cet article vous aidera à comprendre pourquoi !

? Lisez l'article complet ici pour savoir comment éviter ces pièges et devenir un pro du maniement des range loops en Go.

J'aimerais connaître vos réflexions et vos expériences avec les boucles de gamme Go. Avez-vous été confronté à des comportements bizarres ou avez-vous des conseils à partager ? Discutons-en dans les commentaires ! ?

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:dev.to
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