Maison >développement back-end >Golang >Comment implémenter des tableaux redimensionnables dans Go ?

Comment implémenter des tableaux redimensionnables dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-22 00:02:00650parcourir

How Do I Implement Resizable Arrays in Go?

Implémentation de tableaux redimensionnables dans Go

En tant que développeur C en transition vers Go, vous êtes peut-être habitué à utiliser la classe std::vector pour tableaux dynamiques. Dans Go, une fonctionnalité similaire peut être obtenue avec une structure de données de tranche annexable.

Approche standard

Pour créer un tableau dynamique de structures, vous pouvez définir le type de structure puis utilisez des tranches pour stocker les instances de la structure. Les tranches sont dimensionnées de manière dynamique, vous permettant d'ajouter ou de supprimer des éléments au moment de l'exécution.

Exemple d'extrait de code

type myStruct struct {
    b int
    c string
}

func main() {
    // Create an empty slice of myStruct
    a := []myStruct{}

    // Append elements to the slice
    a = append(a, myStruct{1, "hello"})
    a = append(a, myStruct{2, "world"})

    // Iterate over and print the slice
    for _, v := range a {
        fmt.Println(v)
    }
}

Fonction clé : append()

La fonction append() est essentielle pour travailler avec des tranches dans Go. Il prend une tranche comme premier argument et un ou plusieurs éléments comme arguments restants. Il ajoute les éléments spécifiés à la tranche et renvoie une nouvelle tranche avec les éléments ajoutés.

Lectures complémentaires

Pour des informations plus détaillées sur les tranches et la fonction append() , reportez-vous à la spécification Go : https://go.dev/ref/spec#Appending_and_copying_slices

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