Go 语言函数学习笔记
函数的定义和声明方式
在 Go 语言中,函数使用关键字 func
来定义和声明,格式如下:
goCopy Codefunc function_name(parameters) (return_type) {
// 函数体(代码块)
}
其中,function_name
为函数名,parameters
是函数参数列表(可选),return_type
是函数返回值类型(也可选)。
函数的定义和声明可以分开进行,例如:
goCopy Codefunc functionName(parameters) (return_type) {
// 函数体(代码块)
}
...
result := functionName(arguments)
函数参数和返回值
Go 语言中的函数可以接受多个参数,参数间用逗号 ,
分隔,例如:
goCopy Codefunc add(x, y int) int {
return x + y
}
函数可以返回多个值,这些值以逗号 ,
分隔,例如:
goCopy Codefunc swap(x, y string) (string, string) {
return y, x
}
可变参数列表
有些函数允许用户传入可变数量的参数,此时可以使用可变参数列表。在函数定义中,使用 ...type
表示该参数是可变长的,例如:
goCopy Codefunc sum(values ...int) int {
total := 0
for _, value := range values {
total += value
}
return total
}
匿名函数
Go 语言中支持匿名函数,可以直接定义在代码块内,例如:
goCopy Codefunc main() {
func() {
fmt.Println("Hello, world!")
}()
}
函数作为变量
在 Go 语言中,函数也可以作为变量,可以赋值给一个变量,例如:
goCopy Codefunc add(x, y int) int {
return x + y
}
func subtract(x, y int) int {
return x - y
}
func main() {
var operations = map[string]func(int, int) int{
"add": add,
"subtract": subtract,
}
fmt.Println(operations["add"](1, 2)) // 输出:3
fmt.Println(operations["subtract"](5, 3)) // 输出:2
}
示例
接下来是一个简单的示例,定义了一个函数来计算两个数的平均值:
goCopy Codepackage main
import "fmt"
func average(numbers ...float64) float64 {
total := 0.0
count := len(numbers)
for _, number := range numbers {
total += number
}
return total / float64(count)
}
func main() {
fmt.Println(average(1, 2, 3, 4, 5)) // 输出:3
}
该函数使用 ...float64
定义了可变参数列表,接受任意数量的浮点数并计算它们的平均值。