TSL语言基础 > TSL语言基础 > 函数定义体和函数

::指定调用全局函/单元函数    

简述
支持 ::前缀在局部函数和全局函数/单元函数发生冲突的时候调用到全局函数/单元函数
  • 功能:支持 ::前缀在局部函数和全局函数/单元函数发生冲突的时候调用到全局函数/单元函数
    说明:当子函数、单元方法、全局函数同名时,优先调用子函数,加上::后,调用全局函数
    即,不加::时,调用优先级:子函数>全局函数>单元方法
    加上::时,调用优先级:全局函数>单元方法,此时调子函数会报错
    另,在对象中对系统函数的重写时可通过::指定调用系统函数,此方式仅新一代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