Go语言圣经 - 第5章 函数 - 5.3 多返回值

第5章 函数

函数可以让我们将一个语句序列打包成一个单元,然后可以从程序中其他地方多次调用,函数的机制可以让我们把一个大的工作分解成小任务。前面我们已经接触过函数,本章我们将讨论函数的更多特性

5.3 多返回值

我们都已经知道,一个函数可以有多个返回值,接下来我们再来继续研究函数的返回值

许多标注库中的函数返回值一般都有两个,一个是期望得到的返回值,另一个是函数出错时的错误信息

我们来看看新改写的findlinks函数,新改后的findlinks可以自己发起HTTP请求。因为HTTP请求和解析操作都有可能失败,因此findlinks函数有两个返回值,每一个显示链接列表,另一个返回错误信息

一般而言,HTML的解析器可以处理HTML页面的错误结点,构造出HTML页面结构,所以解析HTML很少失败,并且意味着如果findlinks失败了,极有可能是I/O的错误导致的

func main() {
	for _, url := range os.Args[1:] {
		links,err := findlinks(url)
		if err != nil {
			fmt.Fprintf(os.Stderr,"findlinks2",err)
			continue
		}
		for _,link := range links {
			fmt.Println(link)
		}
	}
}
func findlinks(url string) ([]string,error) {
	resp,err := http.Get(url)
	if err != nil {
		return nil,err
	}
	if resp.StatusCode != http.StatusOK {

你可能感兴趣的:(#,Go,golang,开发语言,后端,函数式编程)