Go 函数多返回值 - go 训练营
一个函数能返回不止一个结果,标准包内的许多函数返回两个值,一个期望得到的计算结果与一个错误值,或者一个表示函数是否调用正确的布尔值。
例如,下面的 findLinks 声明了两个结果,一个是发现的链接列表,另一个是错误。
func findLinks(url string) ([]string error) {
resp, err := http.Get(url)
if err != nil {
return nil, err
}
if resp.StatusCode != http.StatusOK {
resp.Body.Close()
return nil, fmt.ErrorOf("getting %s: %s", url, resp.Status)
}
doc, err := html.Parse(resp.Body)
resp.Body.Close()
if err != nil {
return nil, fmt.ErrorOf("parsing %s as HTML: %v", url, error)
}
return visit(nil, doc), nil
}
如果调用者要使用这些返回值,必需显示的将返回值赋给变量,如下:
links, err := findLinks(url)
忽略其中一个返回值可以将它赋给一个空标识符 ,如下:
links, _ := findLinks(url)
欢迎参加 Go 训练营挑战,这些挑战将帮助你逐步掌握 Go 开发。Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。在 2016 年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016年最佳语言”。