Unity中所谓的回调函数

老罗为大家言简意赅的道破回调函数到底是什么,为什么需要回调函数。

我先描述一个情形:
比如一个A程序员写了一个比较两个数大小的方法
bool CompareTwo(int a, int b) //约定返回真表示a >= b
{
return a >= b;
}

现在B程序员想判断1和2哪个大。但是他只有数据不打算写方法,他比较笨。所以他就调A程序员写的代码,你可以看成是库。
int a = 1, b = 2;
bool bResult =  Compare(a,b);
if(bResult)
{
   print("a>=b");
}
else
{
   print("a < b");
}

同志们如果B程序员突然想说我心中1比2大啊,因为1是第一名,2是第二名。
所以我得到的结果应该是1 > 2
所以B程序员就写了一个他认为的比较2个数的办法
bool CompareTwoInt(int a, int b)
{
if(a >= b)
{
return false;
}
else
{
return ture;
}
}

但是B程序员还是想用上面代码比较大小。又是按照自己的思路去比较呢。那么A程序员该如何实现一个方法可以接受用户的比较大小思想的呢。
改版如下:

   //约定返回真表示a >= b
 bool CompareTwo(int a, int b,  Func<int,int,bool> funcCompareMethod)
 {  
      bool bResult =  funcCompareMethod(a,b);//A程序员写的代码调用了用户传过来的比较思想
     return bResult;

}

分析:
这个代码我们看到了什么库函数或者A程序员的方法调了用户或者B程序员的代码。
我们就称库函数调用用户的那个函数为回调函数。
文字理解或者文字游戏:我比如需要你的帮忙,我让你给我比较1和2那个大,但是你其实还是回过来调了我的比较思想也就是反过来问我。最后把比较结果告诉我。
这样的话会不会觉得反正都是写的比较方法为啥还要去调用库多此一举啊,不尽然这里举例没有其他代码,一般库里很多代码很多功能的,不可能都自己写。这个时候为了灵活我们可以写一部分传过来让库调用,我们还是共享了库里大部分代码不用自己去写,节省大量时间和学习成本。Ok谢谢品读。有什么好的见解可以一起讨论下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你一身傲骨怎能输

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值