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
Linda Hamiltonoriginal
2024-11-12 11:35:01416parcourir

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(";")

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

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

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

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

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

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

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