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

可变参数函数,无法传递参数

可变参数函数,无法传递参数

Go
Qyouu 2022-08-01 16:48:19
为了调用对话框可执行文件,最多需要3个按钮,我创建了这个函数:func Dialog(icon string, text string, buttons ...string) int {    cmd := &exec.Cmd{        Path: dialogPath,        Args: []string{            dialogPath,            icon,            text,            buttons...,        },        Stdout: os.Stdout,        Stdin:  os.Stdin,    }    var waitStatus syscall.WaitStatus    if err := cmd.Run(); err != nil {        if exitError, ok := err.(*exec.ExitError); ok {            waitStatus = exitError.Sys().(syscall.WaitStatus)            return waitStatus.ExitStatus()        }    }    return 0}问题是:这甚至无法编译,因为我不知道如何将按钮传递给Cmd。我以为拆包就能解决问题。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

错误是:


syntax error: unexpected ..., expecting comma or }

这是因为这不是有效的语法:


    Args: []string{

        dialogPath,

        icon,

        text,

        buttons...,

    },

只能在函数调用中使用;您可以使用来解决此问题:...append()


    Args:   append([]string{dialogPath, icon, text}, buttons...),


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

添加回答

举报

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