Func 对象

class Func extends Object

表示可自定义或内置的函数.

有关其他可以像函数一样调用的对象的信息, 请参阅函数对象.

Closure 类继承 Func, 但没有定义任何新的属性.

对于脚本中的每个内置函数或函数定义, 都有一个相应的只读变量, 其中包含一个 Func 对象. 这个变量直接用于调用函数, 但它的值也可以被读取, 以检索函数本身, 作为一个值. 例如:

InspectFn StrLen
InspectFn InspectFn

InspectFn(fn)
{
    ; 显示所传函数的信息.
    MsgBox fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.")
}

属性:

方法:

属性

Name

返回函数的名称.

FunctionName := FuncObj.Name

IsBuiltIn

内置函数返回 true, 否则返回 false.

Boolean := FuncObj.IsBuiltIn

IsVariadic

当函数为可变参数时返回 true, 否则返回 false.

Boolean := FuncObj.IsVariadic

MinParams

返回函数必要参数的数目.

ParamCount := FuncObj.MinParams

MaxParams

对于用户定义函数返回正式声明的参数数目, 对于内置函数返回最大的参数数目.

ParamCount := FuncObj.MaxParams

如果函数是可变参数的, ParamCount 表示函数在不考虑 "variadic*" 可变参数的情况下可接受的最大参数数目.

方法

Call

调用一个函数.

FuncObj(Param1, Param2, ...)
FuncObj.Call(Param1, Param2, ...)
Param1, Param2, ...
参数和返回值由函数定义.

调用一个值时, "Call" 方法是隐式的, 所以不需要显式指定.

Bind

为函数绑定参数并返回绑定函数对象.

BoundFunc := FuncObj.Bind(Param1, Param2, ...)
Param1, Param2, ...
任意数量的参数.

有关详情和示例, 请参阅绑定函数对象.

IsByRef

确定一个参数是否为 ByRef(按地址传递) 类型.

Boolean := FuncObj.IsByRef(ParamIndex)
ParamIndex

类型: 整数

可选: 基于 1 的参数索引. 如果省略, Boolean 表示此函数是否含有 ByRef 参数.

返回指示参数是否为 ByRef 的布尔值. 如果 ParamIndex 无效时, 则抛出异常.

IsOptional

确定一个参数是否是可选的.

Boolean := FuncObj.IsOptional(ParamIndex)
ParamIndex

类型: 整数

可选: 基于 1 的参数索引. 如果省略, Boolean 表示此函数是否含有可选参数.

返回指示参数是否为可选参数的布尔值. 如果 ParamIndex 无效, 则抛出异常.

如果此函数是可变参数的, 那么参数可以不进行正式声明. 支持内置函数.

unixetc