Callback

Callback

原名: Callback | 语言: 英语
2019 剧情 18分钟 0.0

导演

Sabina Vajrača

编剧

Victor Alonso-Berbel

详细剧情

回调函数或简称回调(callback),是计算机编程中对某一段可执行代码的引用,它被作为参数传递给另一段代码;预期这段代码将回调(执行)这个回调函数作为自己工作的一部份。这种执行可以是即时的,如在同步回调之中;也可以在后来的时间点上发生,如在异步回调之中。
编程语言以不同方式支持回调,经常将它们实现为子例程、lambda表达式、块或函数指针。

== 使用 ==
回调的用途十分广泛。例如,假设有一个函数,其功能为读取配置文件并由文件内容设置对应的选项。若这些选项由散列值所标记,则让这个函数接受一个回调会使得程序设计更加灵活:函数的调用者可以使用所希望的散列算法,该算法由一个将选项名转变为散列值的回调函数实现;因此,回调允许函数调用者在运行时调整原始函数的行为。
回调的另一种用途在于处理信号或者类似物。例如一个POSIX程序可能在收到SIGTERM信号时不愿立即终止;为了保证一切运行良好,该程序可以将清理函数注册为SIGTERM信号对应的回调。
回调亦可以用于控制一个函数是否作为:Xlib允许自定义的谓词用于决定程序是否希望处理特定的事件。

== 例子 ==
下列C语言代码描述了利用回调处理POSIX风格的信号(在本示例中为SIGUSR1)的过程。值得注意的是,在处理信号的过程中,调用printf(3)是不安全的。

系统调用pause(3)会导致这个例子不做任何有意义的事,但这样做可以给你充分的时间来给这个进程发送信号。(在类Unix系统上,可以调用kill -USR1 ,其中代表该程序的进程号。运行之后,该程序应当会有反应。)

== 实现 ==
回调的形式因程序设计语言而有差别。

C、C++和Pascal允许将函数指针作为参数传递给其它函数。其它语言,例如JavaScript,Python,Perl和PHP,允许简单的将函数名作为参数传递。
Objective-C中允许利用@selector关键字传递SEL类型的函数名。在实现中,SEL类型被定义为函数名字符串。
在类似于C#与VB.NET的运用.NET Framework的语言中,提供了一种型别安全的引用封装,所谓的'委托',用来定义包含类型的函数指针,可以用于实现回调。
.NET语言中用到的事件与事件处理函数提供了用于回调的通用语法。
函数式编程语言通常支持第一级函数,可以作为回调传递给其它函数,也可以作为数据类型存储或是返回给其它函数。
某些语言,比如Algol 68,Perl,新版本的.NET语言以及多数函数式编程语言中,允许使用匿名的代码块(lambda表达式),用以代替在别处定义的独立的回调函数。
在Apple或是LLVM的C语言扩展中,包含称为块的语言特性,可以作为函数的参数传递,作为回调的一种实现。
在缺少函数类型的参数的面向对象的程序语言中,例如Java,回调可以用传递抽象类或接口来模拟…

主要演员

热门推荐

猎犬电影海报

猎犬

2008 6.4

剧情 | 音乐

困肤电影海报

困肤

2009 6.4

剧情

真女有形电影海报

真女有形

2002 6.1

喜剧 | 剧情

真爱染色体电影海报

真爱染色体

2002 5.8

剧情 | 喜剧 | 爱情

Return电影海报

Return

2011 6.4

剧情

梅奇知道什么电影海报

梅奇知道什么

2013 7.1

剧情

我的瘦身日记电影海报

我的瘦身日记

2014 6.5

剧情 | 电视电影

饥饿的心电影海报

饥饿的心

2015 6.5

剧情

自由天空电影海报

自由天空

2015 6.2

剧情

书写人生电影海报

书写人生

2015 5.8

剧情

陌生的处境电影海报

陌生的处境

2016 5.8

剧情

不只是朋友电影海报

不只是朋友

2017 6.3

剧情 | 喜剧

牧师电影海报

牧师

2018 5.9

剧情

墨西哥裔美国人电影海报

墨西哥裔美国人

2019 6.6

剧情

长路简史电影海报

长路简史

2019 7.0

剧情

塞尔吉奥电影海报

塞尔吉奥

2020 6.6

剧情

鹊之家电影海报

鹊之家

2024 6.4

惊悚 | 剧情