"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-15
Parcourir:157

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

Déballage des éléments de tableau dans Go

Go ne dispose pas de la syntaxe pratique pour décompresser les éléments de tableau directement dans des variables que l'on trouve dans 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 attribué 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3