Maison >développement back-end >Golang >Golang - flag.Arg(0) renvoie l'index 1 au lieu de l'index 0 de l'argument passé par exec.cmd
Golang est un langage de programmation rapide, efficace et fiable, et flag.Arg(0) est une fonction couramment utilisée dans Golang, qui est utilisée pour renvoyer l'index 1 du paramètre passé par exec.cmd. Cependant, l'éditeur PHP Zimo a souligné que le comportement de cette fonction n'est pas celui attendu et qu'elle renvoie en fait l'index 1 au lieu de l'index 0. Ce problème peut provoquer des erreurs dans le traitement des paramètres par le programme. Dans cet article, nous expliquerons la cause de ce problème et proposerons des solutions pour aider les développeurs à utiliser correctement la fonction flag.Arg(0).
J'ai du contenu dans mon bar
application actuelle qui ressemble à ceci
flag.parse() str := flag.arg(0) fmt.println(str)
Maintenant, dans mon application foo, j'ai quelque chose comme ça
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 }
Maintenant c.args ci-dessus = [1,2,3]
le programme foo essaie d'appeler le programme bar, la barre affiche 2 Comment afficher la colonne 1.
Je sais que flag.parse
ignore le premier argument. Comment lire le premier argument (index 0) à l'aide de flag.arg() flag.parse
忽略第一个参数。如何使用 flag.arg() 读取第一个参数(索引 0)
cmd.args
包含命令名称。 flag.arg(0)
cmd.args
flag.arg(0)
est le premier argument après le nom de la commande et l'indicateur. 🎜
🎜Corrigé en ajoutant le nom de la commande à 🎜. 🎜
cmd := exec.Cmd{ Path: c.Path, Args: append([]string{c.Path}, c.Args...), Env: c.Env, Stdin: bytes.NewReader(b), Stdout: &stdout, Stderr: &stderr, }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!