单元中的函数支持参数缺省值定义中使用可以访问的const定义的常量。
例如,有一个单元Unit_DfParamsDemo,分别定义了两个方法funcA与funcB,这两个方法分别使用声明中定义缺省参数为外部可访问到的单元常量,及在实现中定义缺省参数为单元内部才能访问到的单元常量
Unit Unit_DfParamsDemo;
interface //可在单元外引用访问
const CS=888; //定义一个常量,定义之后不能被修改
//声明中定义--支持指定interface中定义的常量
function funcA(a,b=100,c=CS); //缺省参数支单元常量
//不在声明中定义,而在implementation实现中定义缺省参数
function funcB(a,b,c);
implementation //只能被当前Unit单元内的方法访问
const CN=999; //定义一个私有常量
function funcA(a,b,c); //已在声明中定义缺省参数,此处不能重复再定义
begin
echo "funcA-a:",a," b:",b," c:",c;
return a+b+c;
end;
function funcB(a,b,c=CN); //此处定义可指定interface及implementation中已定义到的常量
begin
echo "funcB-a:",a," b:",b," c:",c;
return a+b+c;
end;
initialization //初始化
Finalization//析构前
echo "Unit_DfParamsDemo End.";
end.
调用如:
uses Unit_DfParamsDemo;
echo funcA(1);
echo funcA(1,2);
echo funcB(1,2);
打印结果:
funcA-a:1 b:100 c:888
989
funcA-a:1 b:2 c:888
891
funcB-a:1 b:2 c:999
1002
Unit_DfParamsDemo End.