【发布时间】:2019-01-08 03:55:27
【问题描述】:
我刚开始学习go lang,我对在go lang中声明变量感到困惑
例如,我在 if...else 语句中声明了 req、er。
if strings.EqualFold(r.Method, "GET") || strings.EqualFold(r.Method, "") {
req, er := http.NewRequest(r.Method, r.Uri, b)
} else {
req, er := http.NewRequest(r.Method, r.Uri, b)
}
if er != nil {
// we couldn't parse the URL.
return nil, &Error{Err: er}
}
// add headers to the request
req.Host = r.Host
req.Header.Add("User-Agent", r.UserAgent)
req.Header.Add("Content-Type", r.ContentType)
req.Header.Add("Accept", r.Accept)
if r.headers != nil {
for _, header := range r.headers {
req.Header.Add(header.name, header.value)
}
}
但我从终端收到错误
./goreq.go:127: req declared and not used
./goreq.go:127: er declared and not used
./goreq.go:129: req declared and not used
./goreq.go:129: er declared and not used
似乎我在 If 语句中声明的任何内容都不起作用...我该如何解决?
【问题讨论】:
-
我对@987654325@了解不多,但是如果您在if语句之前声明
req和er并在if语句中分配它们,那么警告(是他们是警告还是错误?)应该消失。 -
在 Go 中,将错误结果命名为
err而不是er是惯用的
标签: go global-variables