Maison >développement back-end >Golang >Comment créer des FlagSets indépendants dans GoLang pour les sous-commandes ?

Comment créer des FlagSets indépendants dans GoLang pour les sous-commandes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 20:38:10749parcourir

How to Create Independent FlagSets in GoLang for Subcommands?

FlagSets indépendants dans GoLang

Introduction :

Les FlagSets dans Go fournissent un mécanisme pour définir et analyser les indicateurs de ligne de commande. Bien que la documentation suggère la possibilité de créer des ensembles indépendants pour implémenter des sous-commandes dans une interface utilisateur, on ne sait toujours pas comment réaliser cette fonctionnalité dans la pratique.

Question :

Comment pouvons-nous définir des FlagSets indépendants dans GoLang pour prendre en charge les sous-commandes dans une ligne de commande interface ?

Réponse :

Distinction entre les sous-commandes

Pour obtenir des FlagSets indépendants, la distinction clé réside dans l'identification de la sous-commande avant d'analyser les drapeaux. Voici comment procéder :

1. Créez les FlagSets :

Définissez plusieurs FlagSets, un pour chaque sous-commande.

f1 := flag.NewFlagSet("f1", flag.ContinueOnError)
reset := f2.Bool("reset", false, "")

2. Distinguer les sous-commandes :

Examinez les arguments de ligne de commande pour identifier la sous-commande active. Par exemple, si le préfixe de la commande est "apply", exécutez FlagSet "f1".

switch os.Args[1] {
  case "apply":
    f1.Parse(os.Args[2:])
  case "reset":
    f2.Parse(os.Args[2:])
}

En séparant l'analyse des différents FlagSets en fonction des sous-commandes, nous pouvons conserver des ensembles indépendants d'indicateurs qui s'appliquent uniquement à leurs sous-commandes respectives.

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