class Func extends Object
表示可自定义或内置的函数, 并提供一个接口来调用, 将参数与其绑定, 以及检索它或它的参数的信息.
有关其他可以像函数一样调用的对象的信息, 请参阅函数对象.
Closure
类继承 Func
, 但没有定义任何新的属性.
对于脚本中的每个内置函数或函数定义, 都有一个相应的只读变量, 其中包含一个 Func 对象. 这个变量直接用于调用函数, 但它的值也可以被读取, 以检索函数本身, 作为一个值. 例如:
InspectFn StrLen InspectFn InspectFn InspectFn(fn) { ; 显示所传函数的信息. MsgBox fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.") }
下面使用 "FuncObj" 作为任何 Func 对象的占位符, 因为 "Func" 就是类本身.
除了从 Object 继承的方法和属性外, Func 对象还具有以下预定义的方法和属性.
调用一个函数.
FuncObj(Param1, Param2, ...)
FuncObj.Call(Param1, Param2, ...)
参数和返回值由函数定义.
调用一个值时, "Call" 方法是隐式的, 所以不需要显式指定.
为函数绑定参数.
BoundFunc := FuncObj.Bind(Param1, Param2, ...)
任意数量的参数.
类型: Object
此方法返回一个绑定函数对象.
确定一个参数是否为 ByRef(按地址传递) 类型.
Boolean := FuncObj.IsByRef(ParamIndex)
类型: 整数
如果省略, Boolean 表示此函数是否含有 ByRef 参数. 否则, 请指定基于 1 的参数索引.
类型: 整数(布尔值)
如果参数为 ByRef, 此方法返回 1(true), 否则为 0(false). 如果 ParamIndex 无效, 则抛出异常.
确定一个参数是否是可选的.
Boolean := FuncObj.IsOptional(ParamIndex)
类型: 整数
如果省略, Boolean 表示此函数是否含有可选参数. 否则, 请指定基于 1 的参数索引.
类型: 整数(布尔值)
如果参数可选, 此方法返回 1(true) , 否则为 0(false). 如果 ParamIndex 无效, 则抛出异常.
如果此函数是可变参数的, 那么参数可以不进行正式声明. 支持内置函数.
返回函数的名称.
FunctionName := FuncObj.Name
返回函数必要参数的数目.
ParamCount := FuncObj.MinParams
对于用户定义函数返回正式声明的参数数目, 对于内置函数返回最大的参数数目.
ParamCount := FuncObj.MaxParams
如果函数是可变参数的, ParamCount 表示函数在不考虑 "variadic*" 可变参数的情况下可接受的最大参数数目.