Func 对象

AutoHotKey

Func 对象[v1.1.00+]

表示可以被脚本调用的自定义或内置的函数.

要查看关于其他可以像函数一样被调用的对象, 请参见 Function 对象.

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

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

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

Call

调用函数.

Func.Call(Parameters)  ; v1.1.19+
Func.(Parameters)  ; 旧形式 - 不推荐使用

参数和返回值由函数定义.

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

Bind [v1.1.20+]

为函数绑定参数将返回 BoundFunc 对象.

BoundFunc := Func.Bind(Parameters)

Parameters 可以是任意数量的参数.

详情和例子,请参阅BoundFunc object.

Name

返回函数的名称.

Func.Name

IsBuiltIn

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

Func.IsBuiltIn

IsVariadic

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

Func.IsVariadic

MinParams

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

Func.MinParams

MaxParams

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

Func.MaxParams

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

IsByRef()

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

Func.IsByRef(ParamIndex)
ParamIndex可选: 基于 1 的参数索引. 如果省略, 那么返回值表示此函数是否含有 ByRef 参数.
返回值如果函数为内置函数或 ParamIndex 无效时返回空字符串; 否则返回布尔值表示此参数是否为 ByRef 类型.

IsOptional()

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

Func.IsOptional(ParamIndex)
ParamIndex可选: 基于 1 的参数索引. 如果省略, 返回值表示此函数是否含有可选参数.
返回值如果 ParamIndex 无效则返回空字符串; 否则返回 布尔值 (true / false) 表示此参数是否可选.

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