Le package d'indicateurs est un package pratique pour analyser les indicateurs de ligne de commande.
import "flag"
Lors de la liaison à une variable avec XxxVar () de init () décrite plus loin, préparez une variable pour stocker l'indicateur.
var boolFlag bool
var intFlag int
var strFlag string
S'il n'est pas lié à une variable avec XxxVar () de init () décrit plus loin, il devient un pointeur.
boolPtr := flag.Bool("b", false, "Exemple de valeur booléenne")
intPtr := flag.Int("i", 0, "Exemple de valeurs numériques")
strPtr := flag.String("s", "", "Exemple pour les chaînes")
init () est exécuté avant l'appel de main (). La valeur de l'indicateur spécifié dans la variable par flag.Parse () décrit dans main est entrée, mais la valeur n'est pas encore entrée dans la variable au moment de l'initialisation. Par conséquent, ici, le comportement consiste uniquement à réserver un pointeur pour stocker la valeur de l'indicateur. Liez à une variable avec XxxVar (). Décrivez le pointeur de la variable, le nom de l'indicateur, la valeur par défaut et l'explication de son utilisation dans l'argument.
func init() {
flag.BoolVar(&boolFlag, "b", false, "Spécifiez une valeur booléenne")
flag.IntVar(&intFlag, "i", 0, "Spécifiez une valeur numérique")
flag.StringVar(&strFlag, "s", "", "Spécifiez la valeur de la chaîne de caractères")
}
L'appel de flag.Parse () analyse les indicateurs d'argument de ligne de commande et les lie aux variables.
flag.Parse()
Après cela, la valeur de l'indicateur peut être obtenue à partir de la variable.
#Aucun drapeau spécifié
go run flagsample.go
#Avec indicateur spécifié
go run flagsample.go -b
go run flagsample.go -b -i=1 -s=a
#Compilez le programme et
go build flagsample.go
#Ensuite, exécutez le binaire.
./flagsample -b -i=1 -s=a
Comment écrire lors de la définition en dehors de la fonction
package main
import (
"flag"
"fmt"
)
var boolFlag bool
var intFlag int
var strFlag string
func init() {
flag.BoolVar(&boolFlag, "b", false, "Exemple de valeur booléenne")
flag.IntVar(&intFlag, "i", 0, "Exemple de valeurs numériques")
flag.StringVar(&strFlag, "s", "", "Exemple pour les chaînes")
}
func main() {
flag.Parse()
fmt.Println(boolFlag)
fmt.Println(intFlag)
fmt.Println(strFlag)
}
Comment écrire défini dans la fonction
package main
import (
"flag"
"fmt"
)
func main() {
boolPtr := flag.Bool("b", false, "Exemple de valeur booléenne")
intPtr := flag.Int("i", 0, "Exemple de valeurs numériques")
strPtr := flag.String("s", "", "Exemple pour les chaînes")
flag.Parse()
fmt.Println(*boolPtr)
fmt.Println(*intPtr)
fmt.Println(*strPtr)
}
Recommended Posts