Golang 第五章 3.多返回值
Go 函数可以 返回多个值,这是 Go 相比其他语言的一个重要特性。
示例:交换两个字符串
func swap(x, y string) (string, string) {
return y, x
}
a, b := swap("hello", "world")
fmt.Println(a, b) // world hello函数声明 (string, string) → 两个返回值
调用时可以 同时接收多个返回值
示例:函数返回值和错误
Go 常用模式:函数返回值 + 错误对象
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("除数不能为零")
}
return a / b, nil
}
result, err := divide(10, 2)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result) // 5
}Go 不使用异常,而是通过返回值处理错误
忽略返回值
如果不需要某个返回值,可以用 _ 忽略:
_, err := divide(10, 0)
if err != nil {
fmt.Println(err)
}_ 表示丢弃该值
返回值命名
函数可以给返回值命名,方便引用:
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
a, b := split(17)
fmt.Println(a, b) // 7 10返回值 x, y 成为局部变量
return 不带参数 → 自动返回命名值
多返回值的组合使用
func minMax(nums []int) (min, max int) {
min, max = nums[0], nums[0]
for _, n := range nums[1:] {
if n < min {
min = n
}
if n > max {
max = n
}
}
return
}
nums := []int{3, 7, 1, 9, 4}
minVal, maxVal := minMax(nums)
fmt.Println(minVal, maxVal) // 1 9同时返回最小值和最大值
多返回值使函数调用更简洁
常见使用场景
- 返回值 + 错误(最常用)
- 返回多个结果(如 min/max、坐标、交换)
- 忽略部分返回值 使用
_



评论