加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[日常] Go语言圣经-函数多返回值习题

发布时间:2020-12-16 19:36:08 所属栏目:大数据 来源:网络整理
导读:Go语言圣经-函数多返回值1.在Go中,一个函数可以返回多个值2.许多标准库中的函数返回2个值,一个是期望得到的返回值,另一个是函数出错时的错误信息3.如果一个函数将所有的返回值都显示的变量名,那么该函数的return语句可以省略操作数。这称之为bare return

Go语言圣经-函数多返回值1.在Go中,一个函数可以返回多个值2.许多标准库中的函数返回2个值,一个是期望得到的返回值,另一个是函数出错时的错误信息3.如果一个函数将所有的返回值都显示的变量名,那么该函数的return语句可以省略操作数。这称之为bare return。

练习 5.5: 实现countWordsAndImages。(参考练习4.9如何分词)

import (
"fmt"
"golang.org/x/net/html"
"net/http"
"os"
"strings"
)
/
练习 5.5: 实现countWordsAndImages。(参考练习4.9如何分词)
/
func main() {
words,images,_ := CountWordsAndImages(os.Args[1])
fmt.Printf("文字:%d,图片:%d n",words,images)
}

// CountWordsAndImages does an HTTP GET request for the HTML
// document url and returns the number of words and images in it.
func CountWordsAndImages(url string) (words,images int,err error) {
resp,err := http.Get(url)
if err != nil {
return
}
doc,err := html.Parse(resp.Body)
resp.Body.Close()
if err != nil {
err = fmt.Errorf("parsing HTML: %s",err)
return
}
words,images = countWordsAndImages(doc)
//bare return
return
}
func countWordsAndImages(n *html.Node) (words,images int) {

    texts,images := visit3(nil,n)
    for _,v := range texts {
            v = strings.Trim(strings.TrimSpace(v),"rn")
            if v == "" {
                    continue
            }   
            words += strings.Count(v,"") 
    }   
    //bare return
    return

}
//递归循环html
func visit3(texts []string,imgs int,n *html.Node) ([]string,int) {
//文本
if n.Type == html.TextNode {
texts = append(texts,n.Data)
}
//图片
if n.Type == html.ElementNode && (n.Data == "img") {
imgs++
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
if c.Data == "script" || c.Data == "style" {
continue
}

            texts,imgs = visit3(texts,imgs,c)
    }
    //多返回值
    return texts,imgs

}

 

练习 5.6: 修改gopl.io/ch3/surface (§3.2) 中的corner函数,将返回值命名,并使用bare return。这个很简单就不贴了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读