Quelqu'un peut-il expliquer les drapeaux dans Go?Explication des drapeaux dans Go
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
Quelqu'un peut-il expliquer les drapeaux dans Go?Explication des drapeaux dans Go
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
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)
nomest l'argument de rechercher, la valeur est la valeur par défaut et l'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 here
flag
est utilisé pour analyser les arguments de ligne de commande. Si vous passez "-n" comme argument de ligne de commande, omitNewLine sera défini sur true. Il est expliqué un peu plus loin dans le tutoriel:
Après avoir importé le paquetage flags, la ligne 12 crée une variable globale pour contenir la valeur de l'indicateur -n de l'écho. La variable omitNewline a le type * bool, pointeur vers bool.
flags 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 des programmes:
go run main.go
Essayez le programme d'exécution en donnant d'abord sans drapeaux. Notez que si vous omettez les indicateurs, ils prennent automatiquement leurs valeurs par défaut.
go run command-line-flags.go --env production --port 2000
Si vous fournissez un indicateur avec la valeur spécifiée, la valeur par défaut est remplacée par la valeur passée.
J'aimerais vraiment savoir quels sont les 3 arguments – Casebash