关于函数和方法总结

匿名函数:

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

原文地址:https://www.cnblogs.com/shanchen/p/14051943.html