Erhalten einer Werteliste als Flag in Golang
In Golang bietet das Standard-Flag-Paket die Möglichkeit, Flags über den Befehl zu analysieren Zeile, unterstützt jedoch von Natur aus nur primitive Typen wie Zeichenfolgen, Ganzzahlen und Boolesche Werte. Um eine Liste von Werten als Flag zu verarbeiten, kann man einen benutzerdefinierten Typ flag.Value implementieren und flag.Var() zum Binden verwenden.
Eine Beispielimplementierung ist unten verfügbar:
import ( "flag" "fmt" ) type arrayFlags []string // String is a required implementation of the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set is another required implementation of the flag.Value interface 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 parameter.") flag.Parse() }
Dieser benutzerdefinierte Flag-Typ kann dann verwendet werden, um mehrere Flag-Werte zu übergeben, wie zum Beispiel:
go run your_file.go --list1 value1 --list1 value2
Zusammenfassend lässt sich sagen, dass ein benutzerdefinierter Flag.Value-Typ implementiert und verwendet wird flag.Var() ermöglicht Golang Entwicklern, eine Liste von Werten als Flags zu analysieren, was eine größere Flexibilität bei der Handhabung von Befehlszeilenargumenten bietet.
Das obige ist der detaillierte Inhalt vonWie analysiert man eine Werteliste als Flag in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!