go 多态 函数类型
来源:原创
时间:2019-02-24
作者:脚本小站
分类:GoLang
函数类型:
package main import ( "fmt" ) func add(a, b int) int { return a + b } type FuncType func(int, int) int // 定义函数类型 func main() { var fTest FuncType fTest = add // 函数赋值给函数类型,只要参数和返回值类型都相同即可赋值,可用此方法来实现多态 res := fTest(1, 1) fmt.Println(res) }
多态:
package main import "fmt" // 定义类型 type FuncType func(int, int) int func Calc(a, b int, f FuncType) (result int) { result = f(a, b) return } func add(a, b int) (result int) { return a + b } func minus(a, b int) (result int) { return a - b } func mult(a, b int) (result int) { return a * b } func main() { // 多态 ret := Calc(10, 20, add) fmt.Println(ret) ret = Calc(10, 20, minus) fmt.Println(ret) }