网站首页 > 文章精选 正文
函数是 Go 语言中的基本构建块之一,用于封装可重用的代码片段。通过定义函数,你可以将复杂的程序分解为更小、更容易管理和测试的部分。
1. 函数声明
- 基本语法:
- 使用 func 关键字定义函数。
- 示例:
func functionName(parameters) (returnValues) {
// 函数体
}
- 参数:
- 参数列表放在圆括号 () 中。
- 参数可以是任意类型。
- 示例:
func add(x, y int) int {
return x + y
}
- 返回值:
- 函数可以有一个或多个返回值。
- 返回值的类型放在圆括号 () 中。
- 示例:
func divide(x, y int) (int, error) {
if y == 0 {
return 0, errors.New("division by zero")
}
return x / y, nil
}
- 多返回值:
- 函数可以返回多个值。
- 示例:
func swap(x, y string) (string, string) {
return y, x
}
- 可变参数:
- 使用 ... 表示可变参数。
- 示例:
func sum(numbers ...int) int {
total := 0
for _, number := range numbers {
total += number
}
return total
}
2. 函数调用
- 调用函数:
- 使用函数名后跟圆括号,并传入相应的参数。
- 示例:
- result := add(10, 20)
- 调用多返回值函数:
- 可以直接赋值给多个变量。
- 示例:
- quotient, err := divide(10, 2)
- 调用可变参数函数:
- 传入任意数量的参数。
- 示例:
- total := sum(1, 2, 3, 4, 5)
3. 匿名函数
- 定义匿名函数:
- 不需要指定函数名。
- 示例:
func() {
fmt.Println("Hello, anonymous function!")
}()
- 闭包:
- 函数可以捕获其周围的变量。
- 示例:
func createCounter() func() int {
count := 0
return func() int {
count++
return count
}
}
- 作为参数传递:
- 函数可以作为其他函数的参数。
- 示例:
func apply(f func(int) int, x int) int {
return f(x)
}
- 作为返回值:
- 函数可以作为其他函数的返回值。
- 示例:
func getIncrementer(amount int) func(int) int {
return func(x int) int {
return x + amount
}
}
猜你喜欢
- 2025-07-14 Go并发编程之WaitGroup(go语言 并发)
- 2025-07-14 golang企业微信告警(企业微信告警推送)
- 2025-07-14 2.8 Go语言中的for循环,break和continue
- 2025-07-14 Go语言Context包:最常用包之一的使用指南
- 2025-07-14 Go语言零到一:动态数组——切片(go语言的切片)
- 2025-07-14 2025-06-26:转换数组。用go语言,给你一个整数数组 nums,它被视
- 2025-07-14 go sync.Pool简介(go system)
- 2025-07-14 2025-07-13:统计特殊子序列的数目。用go语言,给定一个只包含正
- 2025-07-14 Go语言数据库编程:GORM 的基本使用
- 2025-07-14 2025-06-28:长度可被 K 整除的子数组的最大元素和。用go语言,给
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)
- fmt.println (52)