函数与方法总览
2026/2/1大约 3 分钟
函数与方法
欢迎来到 Go 语言函数与方法章节!本章节将详细介绍 Go 的函数定义、方法绑定和高级特性。
章节导航
知识体系
函数概览
学习路线
快速预览
函数定义
// 基本语法
func add(a, b int) int {
return a + b
}
// 多返回值
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("除数不能为零")
}
return a / b, nil
}可变参数
// 可变参数
func sum(nums ...int) int {
total := 0
for _, num := range nums {
total += num
}
return total
}
sum(1, 2, 3) // 6
sum(1, 2, 3, 4, 5) // 15闭包
// 闭包函数
func makeAdder(x int) func(int) int {
return func(y int) int {
return x + y
}
}
add10 := makeAdder(10)
add10(5) // 15defer
// 延迟执行
func process() {
defer fmt.Println("最后执行")
fmt.Println("首先执行")
}
// 输出:
// 首先执行
// 最后执行方法
type Counter struct {
count int
}
// 指针接收者方法
func (c *Counter) Increment() {
c.count++
}
// 值接收者方法
func (c Counter) Value() int {
return c.count
}核心概念
函数签名
// 函数签名类型
type Operation func(int, int) int
func add(a, b int) int {
return a + b
}
func apply(op Operation, a, b int) int {
return op(a, b)
}
apply(add, 10, 20) // 30一等公民
// 函数可以作为值
var f func(int) int
f = func(x int) int {
return x * 2
}
f(5) // 10
// 函数可以作为参数
func mapInts(nums []int, f func(int) int) []int {
result := make([]int, len(nums))
for i, num := range nums {
result[i] = f(num)
}
return result
}
// 函数可以作为返回值
func makeMultiplier(factor int) func(int) int {
return func(x int) int {
return x * factor
}
}实践建议
学习建议
- 掌握基础 - 熟练掌握函数定义和调用
- 理解多返回值 - Go 错误处理的基础
- 正确使用 defer - 资源清理的标准方式
- 理解闭包 - 变量捕获和作用域
- 方法选择 - 值接收者 vs 指针接收者
学习检查
完成本章节学习后,您应该能够:
下一步
让我们开始深入学习函数与方法的各个部分!