Golang错误-未声明的名称:xxx编译器

Golang错误-未声明的名称:xxx编译器,go,curl,visual-studio-code,Go,Curl,Visual Studio Code,我正在编写Golang的一个片段,以执行用bash脚本正确编写的curl命令。以下是我到目前为止(在VSCode中)所掌握的内容: url=”https:///blah/blah/blah/“//在您的代码中,您遗漏了冒号,请使用:=而不是= url="https://<DOMAIN>/blah/blah/blah/" //<--valid url, used in bash script and it worked cmd := exec.Command(

我正在编写Golang的一个片段,以执行用bash脚本正确编写的curl命令。以下是我到目前为止(在VSCode中)所掌握的内容:


url=”https:///blah/blah/blah/“//在您的代码中,您遗漏了冒号,请使用
:=
而不是
=

url="https://<DOMAIN>/blah/blah/blah/" //<--valid url, used in bash script and it worked
cmd := exec.Command("curl", "-s --user <USERNAME> --request GET --url "+url+" --header 'Accept: application/json'")
out, err := cmd.Output()
if err != nil {
    fmt.Println("erorr", err)
    return false
}
fmt.Println(out)

url=”https:///blah/blah/blah/“//您的编译器错误是由于此行导致的,该行试图分配给两个未声明的变量(如错误所述):

out, err = cmd.Output()
这可能是一个简短的变量声明,即:

out, err := cmd.Output()
但是,一旦修复,它仍然无法工作,因为您将所有CLI参数作为单个参数传递给curl。应该是:

cmd := exec.Command("curl", "-s", "--user", "<USERNAME>", "--request", "GET", "--url", url, "--header", "Accept: application/json")
cmd:=exec.Command(“curl”、“-s”、“--user”、”、“--request”、“GET”、“--url”、url、“--header”、“Accept:application/json”)

虽然从Go程序调用curl是相当不寻常的;通常,您会使用
net/HTTP
中已经存在的HTTP客户端,因此很可能所有这些代码都应该使用本机客户端来替换。

使用a来声明变量:
out,err:=cmd.Output()
。注意冒号。问题中的代码没有声明错误消息中指定的变量。编译器错误指出无效的代码和语法。首先,了解语言基础知识。修复语法后,下一个问题将是将所有curl参数作为单个字符串参数传递。
cmd := exec.Command("curl", "-s", "--user", "<USERNAME>", "--request", "GET", "--url", url, "--header", "Accept: application/json")