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是初始化
- 函数定义顺序不影响调用
📝 发现内容有误?点击此处直接编辑