Heim > Artikel > Backend-Entwicklung > Was ist die Golang-Flagge?
Es gibt viele Möglichkeiten, Befehlszeilenparameter in Golang-Programmen zu verarbeiten. In einfachen Fällen können Sie os.Args direkt verarbeiten, ohne eine Bibliothek zu verwenden. Tatsächlich stellt die Standardbibliothek von Golang das Flag-Paket zur Verarbeitung von Befehlszeilenparametern bereit. Es gibt auch Bibliotheken von Drittanbietern zur Verarbeitung von Befehlszeilenparametern.
Flag-Paket bietet eine Reihe funktionaler Schnittstellen zum Parsen von Befehlszeilenparametern (empfohlenes Lernen: go)
Befehl Zeilensyntax
Die Befehlszeilensyntax hat hauptsächlich die folgenden Formen
-flag //只支持bool类型 -flag=x -flag x //只支持非bool类型
Die obige Syntax hat jedoch den gleichen Effekt für ein oder zwei „-“-Zeichen Es ist zu beachten, dass im dritten Fall nur Nicht-Bool-Typen unterstützt werden. Der Grund dafür ist, dass
cmd -x *
* 0 ist. False kann einen Dateinamen oder eine Datei darstellen. oder es kann den Wert des x-Tags darstellen. Wenn es 0 oder falsch ist, tritt Mehrdeutigkeit auf. Daher wird festgelegt, dass der dritte Typ nur Nicht-Bool-Typen unterstützt. Für ganzzahlige Flags können zulässige Werte 1234, 0664, 0x1234 oder negative Zahlen usw. sein. Für das boolesche Flag kann es 1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False usw. sein.
Befehlszeilenparameter-Analysemethode
Die Verwendung von Flag umfasst hauptsächlich die folgenden Schritte
Es gibt drei Möglichkeiten, Flag-Parameter zu definieren
Durch flag.String( ), Bool(), Int() und andere flag.Xxx()-Methoden, diese Methode gibt einen entsprechenden Zeiger
import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname")
zurück. Binden Sie das Flag über das Flag an eine Variable, z. B.
var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") }
bindet einen benutzerdefinierten Typ über flag.Var(). Der benutzerdefinierte Typ muss die Value-Schnittstelle implementieren (Receives muss ein Zeiger sein), z. B.
flag.Var(&flagVal, "name", "help message for flagname")
für diesen Flag-Typ. Der Standardwert ist der Anfangswert Wert des Variablentyps
Rufen Sie flag.Parse() auf, um die Befehlszeilenparameter auf das definierte Flag zu analysieren
flag.Parse()
Die Analysefunktion trifft auf die erste Nicht-Flag-Befehlszeile. Stoppen Sie, wenn der Parameter Nicht-Flag-Befehlszeilenparameter beziehen sich auf Parameter, die nicht der Befehlszeilensyntax entsprechen. Der Befehlszeilenparameter ist beispielsweise cmd --flag=true abc und der erste Nicht-Flag-Befehlszeilenparameter ist „abc“.
Nach dem Aufruf von Parse zum Parsen können Sie direkt das Flag selbst (Zeigertyp) oder die gebundene Variable (Werttyp) verwenden.
fmt.Println("ip has value ", *ip) fmt.Println("flagvar has value ", flagvar)
Sie können auch nicht standardmäßige Flags über flag.Args erhalten (), flag.Arg(i) Flag-Befehlszeilenparameter
Das obige ist der detaillierte Inhalt vonWas ist die Golang-Flagge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!