Func Object - Methods & Properties | AutoHotkey

AutoHotkey

Func Object [v1.1.00+]

Represents a user-defined or built-in function which can be called by the script. Func returns an object of this type.

For information about other objects which can be called like functions, see Function Objects.

A reference to a Func object is also known as a function reference. To retrieve a function reference, use the Func function as in the following example:

; Retrieve a reference to the function named "StrLen".
fn := Func("StrLen")

; Display information about the function.
MsgBox % fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.")

Object Members

Properties:

  • Name: Returns the function's name.
  • IsBuiltIn: Returns true if the function is built-in and false otherwise.
  • IsVariadic: Returns true if the function is variadic and false otherwise.
  • MinParams: Returns the number of required parameters.
  • MaxParams: Returns the number of formally-declared parameters for a user-defined function or maximum parameters for a built-in function.

Methods:

Call

Calls the function.

Func.Call(Param1, Param2, ...)  ; Requires [v1.1.19+]
Func.(Param1, Param2, ...)  ; Old form - deprecated
Param1, Param2, ...
Parameters and return value are defined by the function.

[v1.1.07+]: %Func%() can be used to call a function by name or reference, or to call an object which implements the __Call meta-function. This should be used instead of Func.() wherever possible.

Bind [v1.1.20+]

Binds parameters to the function and returns a BoundFunc object.

BoundFunc := Func.Bind(Param1, Param2, ...)
Param1, Param2, ...
Any number of parameters.

For details and examples, see BoundFunc object.

Name

Returns the function's name.

FunctionName := Func.Name

IsBuiltIn

Returns true if the function is built-in and false otherwise.

Boolean := Func.IsBuiltIn

IsVariadic

Returns true if the function is variadic and false otherwise.

Boolean := Func.IsVariadic

MinParams

Returns the number of required parameters.

ParamCount := Func.MinParams

MaxParams

Returns the number of formally-declared parameters for a user-defined function or maximum parameters for a built-in function.

ParamCount := Func.MaxParams

If the function is variadic, ParamCount indicates the maximum number of parameters which can be accepted by the function without overflowing into the "variadic*" parameter.

IsByRef

Determines whether a parameter is ByRef.

Boolean := Func.IsByRef(ParamIndex)
ParamIndex
Optional: the one-based index of a parameter. If omitted, Boolean indicates whether the function has any ByRef parameters.

Returns an empty string if the function is built-in or ParamIndex is invalid; otherwise, a boolean value indicating whether the parameter is ByRef.

IsOptional

Determines whether a parameter is optional.

Boolean := Func.IsOptional(ParamIndex)
ParamIndex
Optional: the one-based index of a parameter. If omitted, Boolean indicates whether the function has any optional parameters.

Returns an empty string if ParamIndex is invalid; otherwise, a boolean value indicating whether the parameter is optional.

Parameters do not need to be formally declared if the function is variadic. Built-in functions are supported.