Golang ist eine schnelle, effiziente und zuverlässige Programmiersprache, und flag.Arg(0) ist eine häufig verwendete Funktion in Golang, die verwendet wird, um den Index 1 des von exec.cmd übergebenen Parameters zurückzugeben. Allerdings wies PHP-Redakteur Zimo darauf hin, dass das Verhalten dieser Funktion nicht wie erwartet sei und sie tatsächlich Index 1 statt Index 0 zurückgibt. Dieses Problem kann zu Fehlern bei der Verarbeitung von Parametern durch das Programm führen. In diesem Artikel erklären wir die Ursache dieses Problems und stellen Lösungen bereit, die Entwicklern helfen, die Funktion flag.Arg(0) korrekt zu verwenden.
Ich habe einige Inhalte in meiner aktuellen bar
App, die so aussehen
flag.parse() str := flag.arg(0) fmt.println(str)
Jetzt habe ich in meiner Foo-App so etwas
var stdout, stderr bytes.Buffer cmd := exec.Cmd{ Path: c.Path, Args: c.Args, Env: c.Env, Stdin: bytes.NewReader(b), Stdout: &stdout, Stderr: &stderr, } if err := cmd.Start(); err != nil { return err }
Jetzt c.args oben = [1,2,3]
foo-Programm versucht, das Bar-Programm aufzurufen, Bar zeigt 2 an So stellen Sie die Spaltenanzeige ein 1.
Ich weiß, dass flag.parse
das erste Argument ignoriert. So lesen Sie das erste Argument (Index 0) mit flag.arg() flag.parse
忽略第一个参数。如何使用 flag.arg() 读取第一个参数(索引 0)
cmd.args
包含命令名称。 flag.arg(0)
cmd.args
flag.arg(0)
ist das erste Argument nach dem Befehlsnamen und dem Flag. 🎜
🎜Behoben durch Hinzufügen des Befehlsnamens zu 🎜. 🎜
cmd := exec.Cmd{ Path: c.Path, Args: append([]string{c.Path}, c.Args...), Env: c.Env, Stdin: bytes.NewReader(b), Stdout: &stdout, Stderr: &stderr, }
Das obige ist der detaillierte Inhalt vonGolang – flag.Arg(0) gibt Index 1 des von exec.cmd übergebenen Arguments anstelle von Index 0 zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!