Maison > développement back-end > Golang > Comment réaliser plusieurs affectations à partir de tableaux dans Go ?

Comment réaliser plusieurs affectations à partir de tableaux dans Go ?

Linda Hamilton
Libérer: 2024-11-12 11:35:01
original
434 Les gens l'ont consulté

How to Achieve Multiple Assignments from Arrays in Go?

Assignations multiples à partir de tableaux dans Go

En Python, le décompression à partir de tableaux peut être effectué avec élégance avec des affectations telles que :

a, b = "foo;bar".split(";")
Copier après la connexion

Go ne prend pas en charge un tel emballage/déballage général. Cependant, il existe plusieurs façons de réaliser plusieurs affectations.

Fonctions personnalisées :

Une approche consiste à créer une fonction personnalisée qui renvoie plusieurs valeurs, comme :

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

Vous pouvez ensuite attribuer directement à partir de l'appel de fonction :

name, link := splitLink("foo\thttps://bar", "\t")
Copier après la connexion

Arguments de pointeur variadique :

Une autre option consiste à utiliser des arguments de pointeur variadique :

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

Cela vous permet d'attribuer des valeurs à plusieurs variables :

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
Copier après la connexion

Choix de l'approche :

L'approche de la fonction personnalisée peut être plus lisible pour les scénarios courants dans lesquels vous souhaitez diviser et attribuer uniquement deux variables. Pour les scénarios de tableaux plus complexes ou de taille variable, l'approche des arguments de pointeur variadique peut être plus flexible.

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 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