首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

子程序(进程、函数、方法)

2012-10-06 
子程序(过程、函数、方法)?一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽

子程序(过程、函数、方法)

?

一般程序设计语言包含两种基本的抽象:过程抽象数据抽象。过程抽象有时也称控制抽象子程序是最主要过程抽象机制。

?

面向对象语言中的方法与子程序的概念十分相似,不同在于它们的调用以及它们与类或对象关联的方式。

?

一、子程序的特征

1,每个子程序只有一个入口。

2,在执行期间,调用程序单位被停止执行,即任意时刻只有一个子程序在执行。

3,子程序执行完毕后,总是将控制返回给调用程序。

注:协同程序?和?并发程序?的特征与子程序不同。

?

二、两种类型的子程序

子程序分为两种类型:过程 和 函数。

过程?是定义参数化技术的语句系列,通过单个调用语句来启动这些计算。过程实际上是定义了新的语句。在Ada中将过程称为procedures,但在Fortran中则将过程称为subroutines。

函数?在结构上模仿了过程,但在语义上却模仿了数学中的函数。如果它是一个纯函数,就不会有副作用。

注:某些编程语义同时提供了过程和函数,如Fortain和Ada;某些如基于C的语言则只有函数。但C中函数的行为却与过程相似,也可以定义这些函数不返回任何值,只要将它们的返回类型定义为void。Java/C++/C#类似。

?

三、子程序的首部定义

1,说明它是关于某个特殊类型子程序的定义(部分语言同时包括过程和函数)。子程序的类型通常由特殊字指定。

2,首部给子程序提供了一个名字。

3,首部可以说明一系列参数(可选)

?

例如定义一个sum的子程序

?

Fortran

function sum(a, b) {return a + b;}sum(3, 5);?def sum(len = myLen,list = myList,result = myResult)

?

函数定义时就将参数与变量一一对应。使用关键字参数的缺点是子程序的必须知道形参的名称。

?

参数默认值?在Python、Ruby、C++、Fortran 95、Ada和PHP中,形参可以有默认值。如果没有将实参传递给子程序的形参,那么将使用默认值。如Python

def show(a = 5):    print (a)show()

?

定义函数show时形参a具有默认值5,调用show时如果没有传实参,那么默认打印出5。

:Javascript之父Brendan Eich准备给该语言添加该项特性。Javascript中函数的定义有可能是如下形式:

function fun(x=5,y=10){                       }

?

在多数语言中形参不具备默认值,调用时实参个数必须和形参匹配一致。但在C、C++、Perl和JavaScript中,则没有该项要求。虽然允许参数数目不同的设计容易引起错误,但有时也是很灵活方便的。例如C的printf函数就以打印任何数目的项。JavaScript也可以根据参数数目不同模拟函数的重载。

?

?

相关:

javascript-ecmascript-harmony-spidermonkey-spidernode-v8-v8monkey-nodejs-nodeconf/

javascript-ecmascript-harmony-coffeescript/

热点排行