Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[日常] Go语言圣经-函数多返回值习题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

Highlighter">

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),"\r\n")
            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

}

 

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

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

大佬总结

以上是大佬教程为你收集整理的[日常] Go语言圣经-函数多返回值习题全部内容,希望文章能够帮你解决[日常] Go语言圣经-函数多返回值习题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: