我正在使用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 关注
- 149 浏览
添加回答
举报
0/150
提交
取消
