

delphi7中函数过程的定义,形参,实参,var,const,参数分隔的逗号与分号
一、函数定义时的多个同类型函数分隔用逗号,不同类型用分号
function getStr2(str1,str2: string): string; //多个同类型的形参间用逗号分隔
function getStrToEnd(str: string; StringList: TStringList):string; //不同类型的形参间用分号
函数赋值时,统统用逗号
GetSubstrToEnd(StringList[i],':');
function GetSubstrToEnd(const SourceStr,subStr: string): string; //
function GetSubstrToEnd(var SourceStr,subStr: string): string;
二、形参是函数定义时的参数没有具体值,只规则了参数的类型,实参是调用函数时实际传入的值
三、var与Const区别
主要是传地址与传值的区别,
var表变量,传到函数中的值可在函数中修改会影响外面,例,有时声明过程时给参数前加var,在外部声明一个变量带入过程去执行,过程执行改变这个变量的值,外部也改变了,相当于过程有返回值
Const表常量,在函数中不会修改其值,改了也不会影响外面
procedure getStr2(var str1,str2: string): string;
function getStr2(const str1,str2: string): string;
四、函数和过程的定义
1. 要先在private或public处声明,不声明就要写到调用的前面,如直接写到implementation后面,其它所有代码前面
2. 函数定义时形参可以设置默认值 :function sum(a,b,double;c:double=0.0):double;overload;
3. 函数和过程在同一作用范围内可以同名,这就是函数和过程的重载(要在函数最后加分号和overload),只要参数类型,参数个数或顺序不同就行了,但返回值类型不同不能作为重载的依据
function sum(a,b,integer):double;overload; //调用sum(3,4)
function sum(a,b,double):double;overload; //调用sum(3,3,4,2)
function sum(a,b,double;c:double=0.0):double;overload; //如果再有这个就出错,因为它和上一行的函数都可以赋两个double的值,系统不知道该用那一个
五、函数的递归调用要在函数或过程后加Forword保留字,如函数A调用B,B又调用A,或者A调用A的情况
procedure s2(var a:integer):forword;