Func 对象[v1.1.00+]

表示可以被脚本调用的自定义或内置的函数. Func 返回这种类型的对象.

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

对 Func 对象的引用也被称为 函数引用. 要获取函数引用, 请使用 Func 函数, 例如:

; 引用一个名为 "StrLen" 的函数.
fn := Func("StrLen")

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

对象成员

属性:

方法:

Call

调用函数.

Func.Call(Param1, Param2, ...)  ; 需要 [v1.1.19+]
Func.(Param1, Param2, ...)  ; 旧的样式 - 不推荐
Param1, Param2, ...
参数和返回值由函数定义.

[v1.1.07+]: %Func%() 可通过名称或引用来调用一个函数, 或者通过调用对象的 __Call 元函数. 应该尽量使用这种语法来替代 Func.() 这种旧的语法.

Bind [v1.1.20+]

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

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

详情和例子, 请参阅绑定函数对象.

Name

返回函数的名称.

FunctionName := Func.Name

IsBuiltIn

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

Boolean := Func.IsBuiltIn

IsVariadic

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

Boolean := Func.IsVariadic

MinParams

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

ParamCount := Func.MinParams

MaxParams

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

ParamCount := Func.MaxParams

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

IsByRef

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

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

如果函数为内置函数或 ParamIndex 无效时返回空字符串; 否则返回布尔值表示此参数是否为 ByRef 类型.

IsOptional

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

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

如果 ParamIndex 无效则返回空字符串; 否则返回布尔值(true / false) 表示此参数是否可选.

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