定义
golang函数的定义:
func 函数名(参数) 返回参数{
//函数体
}
特点
在golang中至少有一个main函数
每个包只能有一个main函数
golang函数的功能相比于C/C++更便捷,golang函数可以返回多个值,这极大地方便了使用
1. golang函数可以返回多个值
下面的函数返回了int 和error两个值,利用这个特性我们就可以判断函数内的执行情况,并做出决策,终止运行或者返回错误。
func GetData() (int, error){
return 0, nil
}
2. golang的函数均包含 func 关键字
3. golang支持匿名函数(即闭包)
匿名函数就是没有名字的函数,其用途有以下几种:
1.匿名函数赋给变量
// 匿名函数赋给变量
data := func(a int){
fmt.Println("a is %d", a)
}
fmt.Println(data(10))
//输出
a is 10
2.用作回调函数
// 遍历切片的每个元素, 通过给定函数进行元素访问
func visit(list []int, f func(int)) {
for _, v := range list {
f(v)
}
}
func main() {
// 使用匿名函数打印切片内容
visit([]int{1, 2, 3, 4}, func(v int) {
fmt.Println(v)
})
}
3. 开启新的goroutine
func main() {
ch := make(chan int)//用于等待goroutine执行
fmt.Println("program is start")
go func(){
fmt.Println("start new goroutine")
ch<-1
}
<-ch
}
4. golang函数支持可变参数
下面的函数入参,nums,是可变参数,可以传多个,也可以不传
func test(nums ...int){
for _,value := range nums{
fmt.Println("%d", value)//打印参数
}
}
func main() {
test(1, 2, 3, 4, 5)
}
//打印结果
1
2
3
4
5