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

Publié le 2024-12-22
Parcourir:173

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

Drapeau personnalisé pour les listes dans Golang

Le package d'indicateurs 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 vous travaillez 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().

Usage

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

Ceci remplissez la variable myFlags avec les trois valeurs fournies : ["value1", "value2", "value3"]. Vous pouvez ensuite accéder à ces valeurs dans votre programme.

Playground

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

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