全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-13 5 分钟 ✍️ juanwangdev

Go函数定义与声明

Go函数使用func关键字定义,语法简洁清晰。

函数声明语法

基本结构

Go
func 函数名(参数列表) 返回值类型 {
    函数体
}

// 示例
func add(a int, b int) int {
    return a + b
}

多参数简写

Go
// 相邻相同类型可合并
func add(a, b int) int {
    return a + b
}

// 等价于
func add(a int, b int) int {
    return a + b
}

函数命名规则

命名规范

Go
// 首字母大写:可导出(公开)
func Add(a, b int) int {
    return a + b
}

// 首字母小写:不可导出(私有)
func subtract(a, b int) int {
    return a - b
}

Go通过首字母大小写控制可见性,无需public/private关键字。

命名风格

Go
// 推荐:驼峰命名,动词开头
func getUser() {}
func calculateTotal() {}
func processData() {}

// 不推荐:下划线命名
func get_user() {}  // Go不推荐

函数体结构

基本函数

Go
func greet(name string) string {
    message := "Hello, " + name
    return message
}

简短函数

Go
// 单行函数可简洁
func square(n int) int {
    return n * n
}

// 或更简洁
func square(n int) int { return n * n }

main函数

程序入口

Go
// main函数是程序入口
func main() {
    fmt.Println("Hello, Go")
}

// 无参数,无返回值
// 执行完毕程序退出

init函数

初始化函数

Go
// init函数在main之前执行
func init() {
    fmt.Println("初始化")
}

func main() {
    fmt.Println("主程序")
}

// 输出顺序:
// 初始化
// 主程序

init函数无参数无返回值,每个文件可有多个init。

函数位置

Go
// 函数定义顺序无关
func main() {
    greet()  // 可调用后定义的函数
}

func greet() {
    fmt.Println("Hello")
}

函数声明方式对比

方式示例说明
标准声明func f(a int) int {}完整声明
类型合并func f(a, b int) {}同类型参数合并
无返回值func f() {}无返回值函数
多返回值func f() (int, error) {}返回多个值

要点总结

  • func关键字声明函数
  • 相邻相同类型参数可合并写
  • 首字母大写可导出,小写私有
  • 驼峰命名,动词开头
  • main是程序入口,init是初始化
  • 函数定义顺序不影响调用

📝 发现内容有误?点击此处直接编辑

← 上一篇 Go函数参数与返回值
下一篇 → Go匿名函数与闭包
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库