gpt4 book ai didi

go - 如何解析变量的副本而不是指针?

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

在下面的代码片段中,我将 http 响应主体 'b' 解析为 func parseGoQuery,第一次没问题,但是当我在 main() 中第二次这样做时,它显示 func parseGoQuery 中的响应 'b' 为 0。我想我传递了变量 'b' 的副本,而不是指针,我很困惑......请指教

resp, _ := client.Get(URL)
b :=resp.Body

defer b.Close() // close Body when the function returns
parseGoQuery("tag1", b) //b is not 0 as expected, good
parseGoQuery("tag2", b) //b is 0 !!!???

这里是 func parseGoQuery

func parseGoQuery(tag string, b io.Reader) {
fmt.Println(tag,b)
//skipped
}

最佳答案

Response.body 是 io.Readcloser 类型。因此,一旦您从正文中读取,它将关闭,进一步尝试从中读取将给出零值。您只能从正文中读取一次。

因此,将您从 body 中读取的数据存储在一个变量中,并将该变量传递给该函数。

关于go - 如何解析变量的副本而不是指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792324/

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