查看上一篇channel類型請點我
golang中可以用type定義函數類型,定義的類型可以當作參數進行傳遞,廢話不多說,直接上例子
package main
import "fmt"
type FuncType func(int, int) int //通過關鍵字type定義函數類型
func Add(a, b int) (c int){
c = a + b
return
}
func Sub(a, b int) (c int){
c = a - b
return
}
//多態,回調函數
func Cacl(a, b int, fun FuncType) (result int) {
result = fun(a, b)
return
}
func main() {
var res int
res = Cacl(3, 1, Add)
fmt.Println("a + b = ", res)
res = Cacl(3, 1, Sub)
fmt.Println("a - b = ", res)
}
運行結果:
a + b = 4
a - b = 2
查看下一篇切片類型請點我