gpt4 book ai didi

go - resp 在 golang 中声明但未使用

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

每次尝试运行代码时都会出现此错误。我不确定如何在 go 中使用未使用的变量以及如何在不使用未使用的变量的情况下使代码工作。我必须删除一个 if-else 语句才能发布这个问题。问题是这样的: if (case1) 调用一个 url else if (case2) 调用另一个 url 否则调用另一个 url。

感谢您的帮助。我尝试了各种技巧,但似乎都不起作用。

package main

import (
"fmt"
"math/rand"
"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
rage := rand.Int31() % 3
var resp *Response
if rage == 1 {
resp, _ := http.Get("https://maps.googleapis.com/maps/api/place/textsearch/json? query=restaurants+in+Sydney&key=AIzaSyAh4t-qlMYrxnk0XF0Yiu9ZXVFDNfPTCFs")
} else {
resp, _ := http.Get("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=AIzaSyAh4t-qlMYrxnk0XF0Yiu9ZXVFDNfPTCFs")
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
resp = unused.Item
fmt.Println("Inside handler")
fmt.Fprintf(w, string(body), nil)
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe("localhost:9999", nil)
}

Output:
C:\go\gowiki\websrevice_citibytes_SOAP.go:233: resp declared and not used
C:\go\gowiki\websrevice_citibytes_SOAP.go:235: resp declared and not used
C:\go\gowiki\websrevice_citibytes_SOAP.go:237: resp declared and not used

最佳答案

您的代码中存在一些错误:

var resp *Response 应该是 var res *http.Response

如果您想使用它的ReadAll 功能,您应该导入“io/ioutil”

什么是 resp = unused.Item ?它应该被删除。

在你解决所有这些问题之后,正如其他评论所说:删除 : 行中将其分配给 resp:

resp, _ := http.Get("...") -> resp, _ = http.Get("...")

错误是使用 := 会创建一个新变量 resp,它会覆盖前一个变量并且只存在于 if 范围内。

正如其他人所建议的,最好只使用带有 url 的字符串变量并使用 if 来设置该变量。

var url string = url1
if cond {
url = url2
}
resp, err := http.Get(url)

此外,不要忽略错误

关于go - resp 在 golang 中声明但未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24981296/

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