好吧所以我是golang的新手,但不是编码,我对功能与golang一起工作的方式感到困惑,在这两周内我有9次或10次我有一个问题是相关的功能......我不懒,我一直在寻找能激励我的例子,但它们都属于一个主要的功能。 我试图在一个函数中使用http.get,并且每次我们需要使用http.get时,许多其他函数都会调用这个函数,所以我们不要一遍又一遍地重复代码。例如:(这不是实际的代码)
func myfunction(site) []byte {
resp, err := client.Get(site) // client is because Im tunneling thing on a proxy TOR and had to create some helpers.. but this is working ok.
return resp
}
func magic(staff) string {
// do things and create websiteurl with staff and onther contants
site := myfunction(website)
contents, err := html.Parse(site.Body)
//....
//....
return result
}
main() {
//... stuff happens :)
}
好的错误是因为我不断改变现状并得到不同的错误。或者根本没有...但是没有结果..
不能在返回参数中使用resp.Body
(类型io.ReadCloser)作为类型[]byte
./gobot.go:71:不能使用site(type [] byte)作为html.Parse参数中的类型io.Reader:
当我第一次使用Site.Body时,我没有收到错误 解析时什么都不做......我把几个调试打印到STDOUT,我得到了两个数字序列的结果。
所以基本上如何返回"结果"我的查询从一个函数到原始,所以它可以解析和使用? 我讨厌重复代码,所以试图将重复的代码保存在一个函数中,让它在需要时调用它。
感谢
答案 0 :(得分:1)
myfunction
的返回类型错误。它应该返回[]byte
而不是*http.Response
。
func myfunction(site string) *http.Response {
resp, err := client.Get(site)
if err != nil {
log.Fatal(err)
}
return resp
}