什么是函数回调?
介绍
函数回调是一种编程概念,它描述的是这样一个过程:一个函数(称为回调函数)作为参数传递给另一个函数(称为调用函数),当满足一定条件或者在某个特定时刻,调用函数会调用传递过来的回调函数。这种机制允许程序员在编写代码时,能够在不同的上下文中重用函数,同时也能实现异步处理、事件驱动编程以及模块间的松散耦合
示例
以Java为例,由于Java语言不直接支持函数指针,因此通常通过接口实现回调机制,比如函数式接口Function
// 这是一个回调接口
public interface Function<T, R> {
/**
*
* Applies this function to the given argument.
*
* @param t the function argument
* @return the function result
*/
R apply(T t);
}
public class TestFunctionCallBack {
@Test
public void mainMethod(){
String str1 = test(String::toUpperCase,"hello");
String str2 = test(this::switchCase,"HeLLo");
log.info("str1:{}", str1);
log.info("str2:{}", str2);
}
/**
* 这个方法(调用函数)接收 函数作为参数
* @param function
* @param args
* @return
*/
public static String test(Function<String,String> function,String args){
//调用回调函数的具体方法
return "{"+function.apply(args)+"}";
}
/**
* 大写转小写,小写转大写
*
* @param source 来源
* @return {@link String}
*/
public String switchCase(String source){
char[] charArray = source.toCharArray();
for (int i = 0; i < charArray.length; i++) {
char c = charArray[i];
if (c >= 'a' && c <= 'z') {
c = (char) (c - 32);
}else if (c >= 'A' && c <= 'Z') {
c = (char) (c + 32);
}
charArray[i] = c;
}
return new String(charArray);
}
}
上述代码中test方法中的参数为一个函数(函数式接口),从本例来看解耦了test和字符串的具体处理逻辑,对于不同的字符串实现只需要传入不同的函数即可,而不需要去修改test中的代码,实现了在不同的上下文中重用函数
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容