Answers:
子程序,子程序
“子程序”可能来自汇编语言。一些处理器包括支持子例程的指令,以作为组织代码和重用公共代码段的一种方式。例如,6502处理器具有JSR(跳转到子例程)和RTS(从子例程返回)指令。我记得它在结构化编程中也经常使用,其中程序是代码单元的层次结构,有时又称为子例程或子程序。IMO,这些是某些代码单元的最通用术语,为了完成给定任务,控制权会暂时转移到该代码单元。
函数,过程
这些经常互换使用,但是在某些语言中存在区别。在Pascal中,函数是返回值的子程序,而过程是不返回值的子程序。在C语言和相关语言中,每个子程序都有一个返回类型(即使是void
),因此没有区别。
方法,成员函数
这是同一事物的两个名称-本质上是与给定类或对象关联的函数。
运算符
每种语言都有一组内置的运算符。在某些语言中,例如C ++,运算符是可以被覆盖(即替换)和/或重载(即为新类型定义)的函数。
匿名函数
这是指没有名称的函数。匿名函数本质上是代码块,可以将其分配给变量或作为参数传递以供后续使用,例如作为完成例程。
闭包,lambda表达式,块
闭包是绑定到一组变量的一段代码。我认为闭包是匿名函数加上下文。
2 + 2
。有一些小的例外,例如1-arg之类的++arg
(前缀)或arg++
(后缀)。虽然,我还没有看到许多后缀运营商..
这取决于语言,您可以如何使用它们
AFAIK在Basic中,如果您调用某个东西,该东西不返回任何东西,但是执行带有打印,写入文件或更改全局变量等副作用的工作,则称为过程。
如果返回某些内容,则称为函数。
在像Java这样的OOP语言中,我很少遇到“功能”一词,而是“方法”,并且有人教导说功能是全局的,每个人都可以调用。
在函数式和OOP语言的Scala中,方法不称为函数,但是您可以将这样的事情传递给另一个方法,然后它成为函数。
据我所知,子例程是一个例程,该例程被另一个例程调用。
总而言之,我不认为所有语言都有一个简洁的定义,范式更是如此。如果使用这些术语,则必须考虑自己所处的特定文化-也许您应该首先介绍您的定义。
function
用于方法的仅有的两种语言是JavaScript和PHP。两者都对非方法(自由函数)使用相同的关键字,就JavaScript而言,函数和方法之间并没有真正的区别,至少在语言级别上没有区别。