Question

Quelqu'un peut-il expliquer les drapeaux dans Go?

flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
Était-ce utile?

La solution

Voir http://golang.org/pkg/flag/ pour une description complète.

Les arguments pour flag.Bool sont (chaîne de nom, bool valeur, chaîne d'utilisation)

nom est l'argument de rechercher, la valeur est la valeur par défaut et utilisation décrit le but du drapeau pour un argument -help ou similaire, et est affiché avec flag.Usage ().

Par exemple, plus détaillé vérifier

Autres conseils

flag est utilisée pour analyser les arguments de ligne de commande. Si vous passez « -n » comme argument de ligne de commande, omitNewLine sera définie sur true. Il est expliqué un peu plus loin dans le tutoriel:

  

Après avoir importé le paquet de drapeau, la ligne 12 crée une variable globale pour maintenir la valeur du drapeau -n de l'écho. La omitNewline variable a le type * bool, pointeur vers bool.

drapeaux sont un moyen commun pour définir les options pour les programmes de ligne de commande.

package main

import (
  "flag"
  "fmt"
)

var (
  env *string
  port *int
)

// Basic flag declarations are available for string, integer, and boolean options.
func init() {
  env = flag.String("env", "development", "a string")
  port = flag.Int("port", 3000, "an int")
}

func main() {

  // Once all flags are declared, call flag.Parse() to execute the command-line parsing.
  flag.Parse()

  // Here we’ll just dump out the parsed options and any trailing positional 
  // arguments. Note that we need to dereference the points with e.g. *evn to 
  // get the actual option values.
  fmt.Println("env:", *env)
  fmt.Println("port:", *port)

}

Exécuter les programmes:

go run main.go

Essayez le programme d'exécution en donnant d'abord sans drapeaux. Notez que si vous omettez drapeaux ils prennent automatiquement leurs valeurs par défaut.

go run command-line-flags.go --env production --port 2000

Si vous fournissez un drapeau avec une valeur spécifiée, par défaut écrasera par un passé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top