匿名函数:
类似与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语言中,函数和方法基本类似,不同的是所属对象,函数属于一个包,方法属于一个类型。