功能:支持 ::前缀在局部函数和全局函数/单元函数发生冲突的时候调用到全局函数/单元函数
说明:当子函数、单元方法、全局函数同名时,优先调用子函数,加上::后,调用全局函数
即,不加::时,调用优先级:子函数>全局函数>单元方法
加上::时,调用优先级:全局函数>单元方法,此时调子函数会报错
另,在对象中对系统函数的重写时可通过::指定调用系统函数,此方式仅新一代TSL语言支持。
全局函数即表示作用域于全局的函数,一般如以函数名命名的用户函数(常说主函数),公用函数,系统函数等,都属于全局函数;
而局部函数一般如子函数,仅能在同文件中的函数中访问到。
范例01:子函数与全局函数(公用函数为例)同名调公用函数
//主函数
Function NoName111();
Begin
//这里调用
Return RoundTo5(3.66);//返回888,即调用子函数的结果
Return :: RoundTo5(3.66);//返回3.5,即调用全局函数(公用函数)的结果
End;
//主函数NoName111下存在子函数RoundTo5,如下
function RoundTo5(v);
begin
return 888;
end;
范例02:对象重载二进制函数中的应用
//创建对象testObj,并重载DateToStr()二进制函数
Type testObj=class
Ftd;
function create(t)
begin
Ftd:=t;
end
function operator DateToStr()
begin
return ::DateToStr(Ftd);
//函数前面加::可指定调用全局函数,这里即系统函数,避免自己调自己
end
end;
//使用效果
obj:=new testObj(20250808T);
return datetoStr(obj);
//返回字符串2025-08-08