3. 匿名函式與閉包

×××的程式設計日常發表於2020-10-27
一、函式型別
  1. 函式也是一種型別可以作為函式返回值,也可以作為引數傳入子函式中
  2. 可以用type FuncType func(int ,int) int來替換
二、匿名函式與閉包
  1. 匿名函式是指在主函式中定義一個函式用變數fun接受,之後再通過fun()來呼叫該方法
  2. 閉包就是指匿名函式,只是在匿名函式中引用來主函式中變數的值,因此在變數會一直存在,不會被gc掉
package main

import "fmt"
//匿名函式與閉包的使用
//閉包就是匿名函式中引用了外部的變數,	且變數是通過傳引用的方式傳入
//閉包也可以作為函式返回值傳回

func main(){

	//驗證傳的是引用
	var score int8 = 10
	show := func(){
		score = 90
		fmt.Println("lihao", score)
	}
	show()
	fmt.Println("socre:", score)

	//b包作為函式返回值返回,注意返回
	fun := func() func(){
		var name = "lihao"
		return func(){
			name = "huang"
			fmt.Println(name)
		}
	}
	fun()()
}

相關文章