go语言多态概念 使用回调函数

之前一直理解不了多态的概念,现在有所感悟,多了不说先上代码

type DuoTai  func(int ,int) int
//加法
func  Add ( a,b int )  int  {
	c := a+b
	return c
}
//乘法
func  Mul( a,b int ) int {
	m:= a * b
	return  m
}

func CallBack (a , b int , d DuoTai) {
	 re:=d(a,b)
	 fmt.Println("vaule:" ,re)
}

func main() {
	fmt.Println("begin...")
	CallBack(1,2,Add)     //     3
	CallBack(2,3,Mul)      //     6
	fmt.Println("End...")
}

回调函数有个明显的特征,就是在入参的时候,有个函数当入参

平时直接使用普通的函数调用不香吗?下面简单的使用一样可以得到相同结果,

为什么要使用这种回调函数呢?下面讲一下为什么崇拜使用回调函数:

这个回调函数就是先定义的一种形态,不知道里面是什么函数,什么功能,先定义在这里,不管他,如果当你有新的需求时,可以使用这种先定义好的形态,直接写新的需求,在进行调用,而像这种普通的函数写完就是固定的函数,得不到变化。

(其实type这个函数也是挺神奇的,可以定义接口,类 这些常使用的,还可以定义函数,int,string这种类型)

下面开始讲讲上面的那段代码:

这样就可以得到1+2的值为3 ,当你突然想使用乘法的时候,不用改代码,直接添加函数通过回调来调用

如果你想不如直接做成计算器,就可以直接添加 除法和减法,都是通过回调实现多种形态(上面的加减乘除),形成计算器。

猜你喜欢

转载自blog.csdn.net/weixin_44282540/article/details/115035516