匿名函数:
类似与C中的函数指针,定义一个函数,该函数的地址通过一个指针指向,然后操作该指针。
如:
func main(){
ptr := func(a,b int) int {
return a+b
}
fmt.Println(ptr(2,3))
}
所谓闭包就是在函数内定义的内部函数,可以使用外部函数的变量。
如:
func main(){
ptr := culcu()
fmt.Println(ptr())
fmt.Println(ptr())
fmt.Println(ptr())
}
func culcu() func() int {
i := 0
return func() int {
i++
return i
}
}
在go中函数其实也是一种类型。
go中的方法定义:
方法必须要有一个接收者,这个接收者是一个类型,这样就将类型和方法绑定在一起。
type Age int
func (age Age) String(){
fmt.Println(age)
}
在go语言中,函数和方法基本类似,不同的是所属对象,函数属于一个包,方法属于一个类型。