大佬教程收集整理的这篇文章主要介绍了[日常] Go语言圣经-函数多返回值习题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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),"\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
}
练习 5.6: @L_874_16@gopl.io/ch3/surface (§3.2) 中的corner函数,将返回值命名,并使用bare return。这个很简单就不贴了
以上是大佬教程为你收集整理的[日常] Go语言圣经-函数多返回值习题全部内容,希望文章能够帮你解决[日常] Go语言圣经-函数多返回值习题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。