Go 函数

Go 函数的声明、参数、多个返回值、命名返回值与函数作为一等值的基本模型。

#type / concept #status / growing #tech / dev #resource / go

[!info] related notes

Go 函数

一句话定义

Go 函数是组织可复用行为的基本单位,支持多个参数、多个返回值,并且函数本身也可以作为值进行传递。

核心机制 / 工作原理

Go 函数的几个关键特征:

  • 形参写法是 name type
  • 返回值类型写在参数列表之后
  • 支持多个返回值
  • 支持可变参数
  • 函数是一等值,可以赋值给变量、作为参数传递、作为返回值返回

多个返回值是 Go 很核心的语言设计,因为它直接支撑了:

  • 错误处理中的 value, err := ...
  • 一些函数返回“结果 + 状态”

最小例子 / 最小场景

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("division by zero")
    }
    return a / b, nil
}

这个例子里最关键的不是语法,而是 Go 的思路:

  • 错误不是异常通道,而是普通返回值的一部分
  • 调用者必须显式处理

需要建立的函数心智

  • Go 函数通常追求签名清晰而不是花哨
  • 多返回值是常态,不是例外
  • 业务逻辑里的很多“是否成功”都应该直接体现在返回值设计里

边界与易混淆点

  • 方法不是特殊关键字语法,本质上是带接收者的函数
  • 命名返回值可以用,但滥用会降低可读性
  • 可变参数本质上会收拢成切片
创建于 2026/6/20 更新于 2026/6/20