为了账号安全,请及时绑定邮箱和手机立即绑定

GoLang 扇入功能不起作用

GoLang 扇入功能不起作用

Go
郎朗坤 2021-09-10 21:21:02
所以我正在尝试使用 Rob Pike 的 fanin 函数编写一个网络爬虫。这是我的代码 -package mainimport (    "net/http"    "encoding/json"    "fmt"    "io/ioutil")func main() {   fanIn(getDuckDuckGo("food"), getGitHub("defunkt"))}type DuckDuckGoResponse struct {    RelatedTopics []struct {        Result string `json:"Result"`        FirstUrl string `json:"FirstURL"`        Text string `json:"Text"`    } `json:"RelatedTopics"`}type GitHubResponse struct {    Login string `json:"login"`    Email string `json:"email"`    Name string `json:"name"`}func fanIn(input1 <-chan DuckDuckGoResponse, input2 <-chan GitHubResponse) <-chan string {    c := make(chan string)    go func() {        for {            select {            case s := <-input1:                fmt.Println(s)            case s := <-input2:                fmt.Println(s)            }        }    }()    return c}func getDuckDuckGo(k string) <-chan DuckDuckGoResponse {    resp, err := http.Get("http://api.duckduckgo.com/?q=" + k + "&format=json&pretty=1")    if err != nil {        return nil    }    c := make(chan DuckDuckGoResponse)    var duckDuckParsed DuckDuckGoResponse    jsonDataFromHttp, jsonErr := ioutil.ReadAll(resp.Body)    if jsonErr != nil {        fmt.Println("Json error!")    }    defer resp.Body.Close()    if err:= json.Unmarshal(jsonDataFromHttp, &duckDuckParsed); err != nil {        panic(err)    }    return c}func getGitHub(k string) <-chan GitHubResponse {    resp, err := http.Get("https://api.github.com/users/?q=" + k)    if err != nil {        return nil    }    c := make(chan GitHubResponse)    var githubParsed GitHubResponse    jsonDataFromHttp, jsonErr := ioutil.ReadAll(resp.Body)    if jsonErr != nil {        fmt.Println("Json error!")    }    defer resp.Body.Close()    if err:= json.Unmarshal(jsonDataFromHttp, &githubParsed); err != nil {        panic(err)    }    return c}我运行这个程序,没有打印任何内容。为什么?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信