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

伊罗姆(Irom):

在下面的代码片段中,我将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
}
vedhavyas:

Response.body的类型为io.Readcloser。因此,一旦您从正文中读取内容,它就会被关闭,并且进一步尝试从它中读取内容将得到零值。您只能从身体读取一次。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章