gpt4 book ai didi

macos - If 和 else 扰乱了 golang 中的变量作用域

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:33 24 4
gpt4 key购买 nike

我有以下 golang 代码:

        var cmd1 *exec.Cmd
msg=receive_cmd();
if strings.Contains(msg, "Log-In") {
cmd1 := exec.Command("echo", "Please log in")
}
else {
if strings.Contains(msg, "SignUp") {
cmd1 := exec.Command("echo", "Please SignUp")
}
}
var out bytes.Buffer
var stderr bytes.Buffer
cmd1.Stdout = &out
cmd1.Stderr = &stderr
err1 := cmd1.Run()
if err1 != nil {
fmt.Println(fmt.Sprint(err1) + " ##:## " + stderr.String() + "#####" + out.String())
return
}

如果收到登录消息,我希望回显命令带有“请登录”,如果消息是注册消息,则带有“请注册”。

当我尝试上面的代码时,它说 cmd1 已声明但未使用。我怎样才能消除这个错误?错误的原因是什么? 我已经对此进行了许多堆栈溢出回答,但没有任何帮助。

最佳答案

if strings.Contains(msg, "Log-In") {
cmd1 = exec.Command("echo", "Please log in")
} else {
if strings.Contains(msg, "SignUp") {
cmd1 = exec.Command("echo", "Please SignUp")
}
}

除了将 else 保持在同一行之外,您需要确保不要使用 = 而不是 := 来重新声明 cmd1作为前面的 }

关于macos - If 和 else 扰乱了 golang 中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com