1、什么是go的函數類型呢?
- go的函數類型定義:用type +函數類型名 (輸入類型)(輸出類型),代表一類的函數
-
//函數類型,函數本身也是一種數據類型 func Minus(a, b int32) int32 { return a - b } func Add(a, b int32) int32 { return a + b } //定義函數類型 ,通過type給函數類型起名 //FuncType它是一個函數類型 type FuncType func(int32, int32) int32 //這種函數類型它代表兩個輸入int32,和一個輸出int32的類型
//實現FuncTypefunc UseFunType() { //聲明一個函數類型 var aFunType FuncType //給函數類型賦值 aFunType = Add aFunType(10, 5) //重新給函數類型賦值 aFunType = Minus aFunType(10, 5) //函數類型的作用是實現函數的多態 num := Calc(1, 2, Add) fmt.Println("%d", num) }
2、go的函數類型有什么用呢?
- 實現函數的多態,什么是多態呢?就是一個函數實現多種形態
-
//回調函數,函數有一個參數是函數類型,這個函數就是回調函數 //多態,多種形態,調用統一接口,不同的表現 //Calc函數實現了很多與函數類型相似的輸入和輸出的函數 //實現函數的多重功能 func Calc(a, b int32, fTest FuncType) (result int32) { fmt.Println("Calc") result = fTest(a, b) return }
- 有點就是我可以寫調用函數的函數。