Events 事件处理程序和函数是一样的吗?

Events 事件处理程序和函数是一样的吗?,events,function,programming-languages,Events,Function,Programming Languages,根据我的理解,与函数不同,事件处理程序接收事件对象作为参数 这两个词之间是否有其他区别,或者两者相似 有人能详细说明这两个术语吗?这取决于您使用的特定语言和API。例如,在C语言中,事件处理程序通常作为函数实现。在C++中,它们也可以是可调用对象。其他语言可能提供不同的选项。这可能取决于语言。事件处理程序是一个函数,通常有一个特殊的参数(在大多数情况下),其中参数是事件对象 所以不,事件处理程序和函数之间实际上没有区别。您可以像调用函数一样轻松地调用事件处理程序,除非您必须将一些事件对象传递给事

根据我的理解,与函数不同,事件处理程序接收事件对象作为参数

这两个词之间是否有其他区别,或者两者相似


有人能详细说明这两个术语吗?

这取决于您使用的特定语言和API。例如,在C语言中,事件处理程序通常作为函数实现。在C++中,它们也可以是可调用对象。其他语言可能提供不同的选项。

这可能取决于语言。事件处理程序是一个函数,通常有一个特殊的参数(在大多数情况下),其中参数是事件对象

所以不,事件处理程序和函数之间实际上没有区别。您可以像调用函数一样轻松地调用事件处理程序,除非您必须将一些事件对象传递给事件处理程序函数,但情况并非总是如此

基本上,您永远不会像调用函数那样调用事件处理程序,您会在触发某个事件时调用该事件,这可能是唯一的区别


我希望这篇文章能有所帮助。

好吧,事件处理程序是特定于您使用的框架的。Java的GUI模型基于偶数处理程序,通常将实现预期接口的匿名内部类(如
KeyListener
)传递给
addKeyListener
(或类似)方法

在C语言中,通常使用函数指针达到相同的效果。button结构将保存一个指向回调的函数指针,并且可以向该函数传递一个事件结构

C++允许您使用函数指针思想,或者您可以定义一个对象,当您尝试“调用”它时,该对象运行某种方法-
some_obj()
在适当定义的对象上调用您选择的某种函数。你甚至可以让它变成辩论。Python也是这样


如果回调采用指定事件的参数,则通常称为事件处理程序。但它们几乎可以互换使用

或者我可以说,即使处理程序也是函数的一种用法,对吗?