除了匿名函数不允许带函数名以外,定义一个匿名函数和普通函数看起来没啥差异,匿名函数的本质就是函数指针,可以用Call、CallInArray或者##来直接调用。
匿名函数的作用域
当匿名函数定义在一个类的方法中,则匿名函数可以访问成员以及方法。
由于宿主函数的运行会结束,为防止不合理的使用导致非法访问, TSL语言不允许匿名函数访问宿主函数的临时变量
一个匿名函数的定义以及使用案例:
//定义一个匿名函数A
A:=function(x,y) begin
return x+y;
End;
//匿名函数(函数指针)可以作为参数传入函数
BB(A);
Function BB(fun);
begin
Echo Call(fun,1,2);//用call方式调用
Echo ##fun(5,6);//##直接调用函数指针
End;
注:匿名函数也可以直接在函数参数中直接定义。
例如:
BB(function(x,y) begin
return x+y;
End);