为了账号安全,请及时绑定邮箱和手机立即绑定

将 []string 传递给需要可变参数的函数

将 []string 传递给需要可变参数的函数

Go
喵喵时光机 2021-11-08 17:03:01
为了不要一遍又一遍地重复我自己,我想创建一个处理运行一些命令的函数。func runCommand(name string, arg ...string) error {    cmd := exec.Command(name, arg)    if err := cmd.Run(); err != nil {        return err    } else {        return nil    }}一旦我尝试运行它,我就会收到以下错误:cannot use arg (type []string) as type string in argument to exec.Command我查看了 的实现,os.Command看起来函数签名正是我提供的。在内部 a[]string应该与可变参数相同,但对于编译器来说似乎不是。有没有办法将可变参数传递到Command?
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

[]string用另一个扩展...

cmd := exec.Command(name, arg...)

语言规范传递参数...参数

如果最后一个参数可分配给切片类型[]T,则...T如果参数后跟.... 在这种情况下,不会创建新切片。

给定切片 s 并调用

s := []string{"James", "Jasmine"}
Greeting("goodbye:", s...)

在 Greeting 中,who将具有s与相同底层数组相同的值。


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信