Listenwerte in Flags in Go analysieren
In Go ist das Flag-Paket das Äquivalent von Pythons argparse. Während die integrierten Flag-Typen nur Zeichenfolgen, ganze Zahlen und boolesche Werte unterstützen, ist es möglich, benutzerdefinierte Flag-Typen zu definieren, um Listen mit Werten aufzunehmen.
Benutzerdefinierter Flag-Typ für Listen
Um einen benutzerdefinierten Flag-Typ für Listenwerte zu definieren, implementieren Sie die Schnittstelle flag.Value in einem neuen Typ, z. B. arrayFlags. Die String()-Methode stellt eine Zeichenfolgendarstellung der Liste bereit und die Set()-Methode aktualisiert die Liste mit neuen Werten.
Binden des benutzerdefinierten Flags
Sobald Sie Wenn Sie den benutzerdefinierten Flag-Typ definiert haben, können Sie ihn mit flag.Var() an ein Flag binden. Dadurch können Sie zur Laufzeit mehrere Werte für dieses Flag übergeben.
Beispielverwendung
Hier ist ein Beispiel für die Verwendung eines benutzerdefinierten Flagtyps für Listen:
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] }
Wenn Sie diesen Code mit dem folgenden Befehl ausführen, werden die Listenwerte in die myFlags analysiert Variable:
go run your_file.go --list1 value1 --list1 value2
Das obige ist der detaillierte Inhalt vonWie analysiert man Listenwerte in Flags in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!