go 閉包

看程序閉包

package main

import "fmt"

func main() {
	f:=test2()
	fmt.Println(f())
	fmt.Println(f())
}

func test2() func() int {
	a := 10
	return func() int {
		a++
		return a
	}
}

結果爲:函數

11
12blog

這個就是閉包,格式爲有一個函數,函數的返回值爲函數類型,而且在閉包這個函數裏面有一個匿名函數,在匿名函數外面必定要有一個變量,這個變量須要在匿名函數中使用,這樣作的目的就是屢次調用時,外面這個變量都不會被清除,會一直變化,直到再也不調用這個閉包爲止class

相關文章
相關標籤/搜索