在Go语言中,函数是go代码中的一个代码块
在go语言中,声明函数
fun sum(i int,j int) int{return i+j }
在go语言函数中,返回值需要通过return方式来返回。
调用直接通过函数名的方式调用即可
在函数中,还有很多其它的特性:
1 . 多返回值
在go语言中,支持多返回值,而且使用的频次还比较高一些,用的比较多的就是用于返回值和异常信息了!
j,p := sum(1,2)
fmt.Println(j,p)
func sum(i int, j int) (int,int) {
return i + j,0
}
2. 允许可变长参数
函数中允许传递可变长度的参数,比如:
func sums(i ...int) int {
total := 0
for _, r := range i {
total += r
}
return total
}
可变参数长度本质上来讲就是slice,变参在函数中只能有一个,且只能是在最后一个!
如果使用slice结构转为可变长的参数时,可以使用如下的方式:
r := []int{1,2,3,4}
sums(r...)
3. 闭包
go语言中支持通过闭包来创建匿名函数,匿名函数在定义一个不需要命名的内敛函数时是很实用的。
这个 intSeq 函数返回另一个在 intSeq 函数体内定义的匿名函数。这个返回的函数使用闭包的方式 隐藏 变量 i
func initSeq() func() int {
i := 0
return func() int {
i += 1
return i
}
}
调用 intSeq 函数,将返回值(也是一个函数)赋给nextInt。这个函数的值包含了自己的值 i,这样在每次调用 nextInt 时都会更新 i 的值
initSeqs := initSeq()
fmt.Println(initSeqs())
fmt.Println(initSeqs())
fmt.Println(initSeqs())
fmt.Println(initSeqs())
学习地址:
https://books.studygolang.com