返回多个值
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 56 课,共 109 课。
Go 函数可以一次返回多个值,这对于同时返回结果和错误信息非常有用。
创建一个同时返回商和余数的函数:
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}运行此程序时,它会输出:
7 ÷ 3 = 2 with remainder 1函数会返回两个用逗号分隔的值,我们在赋值时用多个变量接收这两个值。
如果你只需要部分返回值,可以使用空白标识符 _ 忽略不需要的值:
q, _ := divide(7, 3) // 忽略余数
fmt.Println("Quotient:", q)使用 _ 可以告诉 Go 丢弃这个返回值。如果你不使用某个值,就必须这样做,因为 Go 不允许存在未使用的变量。
挑战
入门在这个挑战中,你将练习在 Go 中从函数返回多个值。
我们有一个名为 getPersonInfo 的函数,它应该返回一个人的姓名、年龄,以及这个人是否是学生。你的任务是添加恰当的 return 语句,完成这个函数。
亲手试试
package main
import "fmt"
// 这个函数应返回三个值:name、age 和 isStudent。
func getPersonInfo() (string, int, bool) {
// 变量已经为你定义好了。
name := "Alex"
age := 25
isStudent := true
// TODO: 返回全部三个值(name、age、isStudent)。
}
func main() {
// 调用函数并保存返回的值。
name, age, isStudent := getPersonInfo()
// 打印这些值。
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器