章节

6.3 函数返回值

本篇学习 Go 函数返回值的常见写法,并能正确处理单返回值、多返回值与错误返回。

函数返回值

概念说明

函数返回值用于把处理结果从函数内部传回调用方。
Go 常见写法有:无返回值、单返回值、多返回值、命名返回值。

语法/规则

  1. 无返回值函数可省略返回类型。
  2. 单返回值写在参数列表后,例如 func f() int
  3. 多返回值写在括号里,例如 func f() (int, error)
  4. 命名返回值可以在函数签名中先声明,return 时可省略具体变量。
  5. 返回 error 时,调用方应先判断错误再使用结果。

不同返回值写法示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main

import (
	"errors"
	"fmt"
)

func fun1() {
	fmt.Println("fun1 无返回值")
}

func fun2() int {
	return 5
}

func fun3(a, b int) (int, error) {
	if b == 0 {
		return 0, errors.New("除数不能为 0") // 多返回值:结果 + 错误信息
	}
	return a / b, nil
}

func fun4() (res string) { // 命名返回值
	res = "命名返回值"
	return
}

func main() {
	fun1()
	fmt.Println(fun2())

	value, err := fun3(10, 0) // 同时接收结果和错误
	fmt.Println(value, err)

	fmt.Println(fun4())
}

输出结果:

1
2
3
4
fun1 无返回值
5
0 除数不能为 0
命名返回值

常见错误

  1. 函数声明了返回值类型却没有 return,导致编译报错。
  2. 调用多返回值函数时,不能少接收返回值而又不显式丢弃;如果只关心部分结果,应使用 _,例如 value, _ := f()
  3. 接收到 error 后不判断就继续使用结果,容易引发逻辑错误。
  4. 命名返回值和局部变量重名,导致结果混淆。
本文禁止转载
使用 Hugo 构建
主题 StackJimmy 设计 由 Hobin 魔改
最近构建时间:2026-04-17 19:07:48 CST
载入天数...载入时分秒...
发表了 1 篇文章 · 发表了 152 篇笔记 · 总计 18 万 0 千字