zoukankan      html  css  js  c++  java
  • 回调函数

    回调函数的定义:

    使用回调函数实际上就是在调用某个函数(一般是API函数)时。将自己的一个函数(这个函数为回调函数)的地址作为參数传递给那个函数。而那个函数在须要的时候。利用传递的地址调用回调函数。这时你能够利用这个机会在回调函数中处理消息或完毕一定的操作。

    说白了就是将一个你自已的一个函数A的函数指针传给另外一个函数B(该函数接受你传过来的函数指针);然后在B中调用这个函数,那么就完毕了一次回调

    以下别人用c写的一个样例:

    <span style="color:#000000;">#include <stdio.h>
    void printWelcome(int len)
    {
           printf("欢迎欢迎 -- %d/n", len);
    }
    void printGoodbye(int len)
    {
           printf("送客送客 -- %d/n", len);
    }
    void callback(int times, void (* print)(int))
    {
           int i;
           for (i = 0; i < times; ++i)
    
           {
                  print(i);
           }
           printf("/n我不知道你是迎客还是送客!/n/n");
    }
    void main(void)
    
    {
           callback(10, printWelcome);//这里的</span><span style="color:#000000;">printWelcome就是回调函数</span><span style="color:#000000;">
           callback(10, printGoodbye);
           printWelcome(5);
    
    }</span>
    以下我用java再写一个简单的样例:

    <span style="color:#000000;">public class Caller {
    	private IMyCaller caller;
    	public Caller(IMyCaller caller){
    		this.caller = caller;
    	}
    	public void call(){
    		caller.method();//调用回调函数
    	}
    }</span>
    
    接口
    <span style="color:#000000;">public interface IMyCaller {
    	public abstract void method();
    }
    </span>
    实现接口
    <span style="color:#000000;">
    public class MyCallerImpl implements IMyCaller{
    
    	@Override
    	public void method() {
    		System.out.println("This is 回调函数");
    	}
    	public static void main(String[] args) {
    		Caller call = new Caller(new MyCallerImpl());//将自已的一个实例传入
    		call.call();//实现回调
    	}
    
    }</span>
    





  • 相关阅读:
    好还是坏:人工智能二分类问题
    神经网络手写数字识别
    TensorFlow or PyTorch
    什么是深度学习
    五个常见 AI 开发库
    AI——第四次工业革命
    NodeJs获取不到POST参数
    Android权限
    【nodejs学习】3.进程管理及异步编程
    每日一题
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6832155.html
Copyright © 2011-2022 走看看