首页 > 代码库 > Delphi之过程与函数
Delphi之过程与函数
过程以保留字procedure开始,没有返回值;函数以保留字function开始,有返回值。
参数位于括号里面,多个参数之间以分号分隔,例如:
procedure SetDate(Year: Integer; Month: Integer; Day: Integer);
也可以将相同类型的参数组合在一起,则上述过程标题写成:
procedure SetDate(Year, Month, Day: Integer);
函数在标题中还多了一项——返回值的类型。下面是一个返回值为Double型的函数标题:
function GetAverage(num:integer;total:Double):Double;
1. 基本概念
(1)函数
函数有两类:一类是标准函数,这一类函数由Delphi定义并实现,程序员可以直接引用;另一类为自定义函数,一个自定义函数应首先在程序声明部分声明,之后才可以在程序的执行部分加以调用。
过程或函数的语句部分由begin开始、end结束。函数需要一个返回值。可以将返回值赋给函数名称,也可以将返回值赋给Result变量。
例::
function GetAverage(num:integer;total:Double):Double;
begin
GetAverage := total / num;
end;
也可以将返回值赋给Result变量:
Result := total / num;
(2)过程
定义过程的保留字是procedure。
过程也有两类:一类为Delphi定义的标准过程,另一类为自定义过程。
2. 参数与作用域
(1)参数
过程和函数与外界的数据通信有两种方式:一种是通过全局量,另一种是通过参数。最常用的参数有值参数、变量参数和常量参数3种。
· 值参数 若参数定义为值参数,则函数的调用对实参的值没有影响。
· 变量参数(Var申明) 若参数定义为变量参数,则函数调用的结果对实参的值有影响。
· 常量参数(const 申明) 如果参数定义为常量参数,则当过程或函数执行时不改变形参的值。
如果当过程或函数执行时要求不改变形参的值,则最保险的办法是使用常量参数。在形式参数表的参数名称前加上保留字const可以使一个形参成为常量参数。
(2)作用域
1)全局变量是在主程序中定义的变量。
2)局部变量是在过程或函数中定义的变量。
全局变量对于整个程序均适用,局部变量只对定义它的过程或函数有效。
Object Pascal语言对于变量的作用域有如下约定:
1)在不同层次可以定义使用同名变量,但在同一层中1个变量只能定义1次。
2)同名变量在不同层次被定义时,代表不同的对象。执行内层程序时,外层的非局部变量虽然存在,却已经被屏蔽;而当程序从内层退出后,内层的局部变量就已经不存在,只有外层的那个非局部变量仍然存在。Delphi之过程与函数