Maison  >  Article  >  développement back-end  >  Comment puis-je analyser plusieurs valeurs dans une liste à l'aide d'indicateurs personnalisés dans Golang ?

Comment puis-je analyser plusieurs valeurs dans une liste à l'aide d'indicateurs personnalisés dans Golang ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 07:08:03258parcourir

How can I parse multiple values into a list using custom flags in Golang?

Drapeau personnalisé pour les listes dans Golang

Le package flag de Golang permet une analyse facile des arguments, mais il prend généralement en charge les types de base tels que chaîne, entier, ou booléen. Cela peut sembler limitant lorsque l'on travaille avec des listes de valeurs.

Golang permet la création de drapeaux personnalisés en implémentant l'interface flag.Value. Cette interface nécessite l'implémentation de deux méthodes : String() et Set(). En définissant un indicateur personnalisé pour les listes, vous pouvez activer l'analyse de plusieurs valeurs transmises via des indicateurs de ligne de commande.

Définition d'un indicateur de liste personnalisé

Considérez l'exemple suivant :

package main

import "flag"
import "fmt"

type arrayFlags []string

// String() implements the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set() implements the flag.Value interface
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
    fmt.Println(myFlags)
}

Ceci définit un type d'indicateur personnalisé appelé arrayFlags qui accepte plusieurs valeurs. L'indicateur est lié au nom de l'indicateur "list1" et peut être analysé à l'aide de flag.Parse().

Utilisation

Pour transmettre plusieurs valeurs à l'aide de cet indicateur personnalisé, vous pouvez exécuter le programme comme suit :

go run your_file.go --list1 value1 --list1 value2 --list1 value3

Cela remplira la variable myFlags avec les trois valeurs fournies : ["value1", "valeur2", "valeur3"]. Vous pouvez ensuite accéder à ces valeurs au sein de votre programme.

Playground

Pour un exemple en direct, vous pouvez visiter le terrain de jeu suivant : [lien playground]

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