Maison >développement back-end >Golang >Comment puis-je décompresser des éléments de tableau directement en variables dans Go ?

Comment puis-je décompresser des éléments de tableau directement en variables dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-14 20:08:02575parcourir

How Can I Unpack Array Elements Directly into Variables in Go?

Déballage des éléments d'un tableau dans Go

Go ne dispose pas de la syntaxe pratique pour décompresser les éléments d'un tableau directement dans des variables que l'on trouve en Python. Bien que l'approche initiale de l'interrogateur utilisant une variable intermédiaire fonctionne, elle peut conduire à un code encombré, en particulier dans des scénarios complexes.

Valeurs de retour multiples

Pour résoudre ce problème, la méthode recommandée La solution consiste à créer une fonction qui renvoie plusieurs valeurs. Par exemple, pour diviser une chaîne et décompresser les résultats en deux variables, une fonction comme celle-ci peut être utilisée :

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}

Avec cette fonction, le code suivant peut être utilisé pour décompresser la chaîne divisée :

name, link := splitLink("foo\thttps://bar", "\t")

Arguments de pointeur variadiques

Une autre approche consiste à utiliser des arguments de pointeur variadiques, qui permettent de transmettre plusieurs variables de pointeur à une fonction et d'attribuer les valeurs d'un tableau. Voici comment cela fonctionne :

func unpack(s []string, vars... *string) {
    for i, str := range s {
        *vars[i] = str
    }
}

Pour décompresser un tableau, le code ci-dessous peut être utilisé :

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)

Cette approche permet de décompresser des tableaux de n'importe quelle taille, mais elle nécessite une déclaration explicite des variables et est considéré comme moins lisible par certains développeurs.

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