我正在使用exec.Command它為其第二個參數接收可變數量的字符串。例如:out, err = exec.Command("python3", "script_name.py", "argument", "--flag", "--another")我也可以使用切片并使用以下方法解包...:var args = []string{"script_name.py", "argument", "--flag", "--another"}out, err = exec.Command("python3", args...)但是將兩者混合不起作用:var args = []string{"argument", "--flag", "--another"}out, err = exec.Command("python3", "script_name.py", args...)失敗:./tester.go:12:29: too many arguments in call to exec.Command have (string, string, []string...) want (string, ...string)這讓我感到驚訝,因為類似的東西可以在 python 中工作。我試過尋找這個特定的案例,但我發現的大部分資源都只是一般的切片。我已經通過將“常量”部分添加到切片的開頭來“解決”它(更像是一種解決方法),但想確保我沒有遺漏任何東西:var args = os.Argsargs = append([]string{"script_name.py"}, args...)out, err := exec.Command("python3", args...).Output()我錯過了什么嗎?有沒有辦法同時傳遞常量字符串和解壓數組?這里的語言限制是什么?為什么要區分string, string, string和string, string...?我很想更深入地理解這一點。
1 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
- 1 回答
- 0 關注
- 94 瀏覽
添加回答
舉報
0/150
提交
取消