Rumah >pembangunan bahagian belakang >Golang >Golang - flag.Arg(0) mengembalikan indeks 1 dan bukannya indeks 0 argumen yang diluluskan oleh exec.cmd
Golang ialah bahasa pengaturcaraan yang pantas, cekap dan boleh dipercayai serta bendera.Arg(0) ialah fungsi yang biasa digunakan dalam Golang, yang digunakan untuk mengembalikan indeks 1 parameter yang diluluskan oleh exec.cmd. Walau bagaimanapun, editor PHP Zimo menegaskan bahawa kelakuan fungsi ini tidak seperti yang diharapkan, dan ia sebenarnya mengembalikan indeks 1 dan bukannya indeks 0. Masalah ini boleh menyebabkan ralat dalam pemprosesan parameter oleh program. Dalam artikel ini, kami akan menerangkan punca masalah ini dan menyediakan penyelesaian untuk membantu pembangun menggunakan flag.Arg(0) berfungsi dengan betul.
Saya mempunyai beberapa kandungan dalam bar
aplikasi semasa saya yang kelihatan seperti ini
flag.parse() str := flag.arg(0) fmt.println(str)
Kini dalam apl foo saya, saya mempunyai sesuatu seperti ini
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 }
Sekarang c.args di atas = [1,2,3]
program foo cuba memanggil program bar, paparan bar 2 Cara membuat paparan lajur 1.
Saya tahu bahawa flag.parse
mengabaikan hujah pertama. Cara membaca hujah pertama (indeks 0) menggunakan flag.arg() flag.parse
忽略第一个参数。如何使用 flag.arg() 读取第一个参数(索引 0)
cmd.args
包含命令名称。 flag.arg(0)
cmd.args
flag.arg(0)
ialah hujah pertama selepas nama perintah dan bendera. 🎜
🎜Dibetulkan dengan menambahkan nama arahan pada 🎜. 🎜
cmd := exec.Cmd{ Path: c.Path, Args: append([]string{c.Path}, c.Args...), Env: c.Env, Stdin: bytes.NewReader(b), Stdout: &stdout, Stderr: &stderr, }
Atas ialah kandungan terperinci Golang - flag.Arg(0) mengembalikan indeks 1 dan bukannya indeks 0 argumen yang diluluskan oleh exec.cmd. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!