Ich bin mir nicht sicher, ob ich die Gründe für dieses Beispiel zu verstehen (von here genommen), noch was es versucht, über die Go Sprache zu kommunizieren:Flag Befehlszeile Parsen in golang
package main
import (
"flag"
"fmt"
)
func main() {
f := flag.NewFlagSet("flag", flag.ExitOnError)
f.Bool("bool", false, "this is bool flag")
f.Int("int", 0, "this is int flag")
visitor := func(a *flag.Flag) {
fmt.Println(">", a.Name, "value=", a.Value)
}
fmt.Println("Visit()")
f.Visit(visitor)
fmt.Println("VisitAll()")
f.VisitAll(visitor)
// set flags
f.Parse([]string{"-bool", "-int", "100"})
fmt.Println("Visit() after Parse()")
f.Visit(visitor)
fmt.Println("VisitAll() after Parse()")
f.VisitAll(visitor)
}
Etwas nach dem Vorbild von der Einrichtung haben sie aber dann einen
hinzufügen, um das benannte Argument würde nützlicher scheinen. Ich bin völlig neu in Go, versuche also nur, mit der Sprache vertraut zu werden.
https://gobyexample.com/command-line-flags ist ein großartiges Beispiel. – elithrar
Sie benötigen ein FlagSet, wenn Sie Argumente übergeben wollen, die im Code des Programms 'f.Parse ([] string {" - bool "," -int "," 100 "})' parsen. Die globale Funktion 'flag.Parse()' akzeptiert kein Argument zum Parsen. Dieses Codebeispiel kann dann in der Tour von go code pad ausgeführt werden, in der Sie keine Befehlszeilenargumente angeben können. – chmike