Maison > développement back-end > Golang > Comment analyser les valeurs de liste en indicateurs dans Go ?

Comment analyser les valeurs de liste en indicateurs dans Go ?

Susan Sarandon
Libérer: 2024-11-29 08:36:13
original
1030 Les gens l'ont consulté

How to Parse List Values into Flags in Go?

Analyse des valeurs de liste en indicateurs dans Go

Dans Go, l'équivalent de l'argparse de Python est le package flag. Bien que les types d'indicateurs intégrés ne prennent en charge que les chaînes, les entiers et les booléens, il est possible de définir des types d'indicateurs personnalisés pour s'adapter aux listes de valeurs.

Type d'indicateur personnalisé pour les listes

Pour définir un type d'indicateur personnalisé pour les valeurs de liste, implémentez l'interface flag.Value dans un nouveau type, tel que arrayFlags. La méthode String() fournit une représentation sous forme de chaîne de la liste et la méthode Set() met à jour la liste avec de nouvelles valeurs.

Liaison de l'indicateur personnalisé

Une fois que vous Après avoir défini le type d'indicateur personnalisé, vous pouvez utiliser flag.Var() pour le lier à un indicateur. Cela vous permet de transmettre plusieurs valeurs pour cet indicateur au moment de l'exécution.

Exemple d'utilisation

Voici un exemple d'utilisation d'un type d'indicateur personnalisé pour les listes :

package main

import (
    "flag"
    "fmt"
)

type arrayFlags []string

func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

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) // Prints [value1 value2]
}
Copier après la connexion

L'exécution de ce code avec la commande suivante analysera les valeurs de la liste dans myFlags variable :

go run your_file.go --list1 value1 --list1 value2
Copier après la connexion

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!

source:php.cn
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