函数
函数的返回值可以是函数
func test() func() int {
b := func() int {
fmt.Println("a")
return 1
}
return b
}
函数可以传入多个或者可变数量的参数,函数可以作为参数
func myfunc(args ...int) { //0个或多个参数
}
func add(a int, args…int) int { //1个或多个参数
}
func add(a int, b int, args…int) int { //2个或多个参数
}
匿名函数
func main() {
getSqrt := func(a float64) float64 {
return math.Sqrt(a)
}
fmt.Println(getSqrt(4))
}
闭包
func main() {
c := bibao()
c()
c()
c()
}
func bibao() func() int {
a := 0
b := func() int {
a++
fmt.Println(a)
return a
}
return b
}
1
2
3
方法
1.方法总是绑定对象实例,并隐式将实例作为第一实参
type Test struct{}
// 无参数、无返回值
func (t Test) method0() {
。。。
}
除了多了绑定struct 别的与方法没什么区别