Func Object

From Auto Hotkey

Func Object

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.")

If fn is a function reference, Func(fn) returns it. Thus, fn := Func(fn) can be used to ensure fn is a function reference. If fn is neither a valid function name nor a function reference, Func returns a blank value.

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, ...)
%Func%(Param1, Param2, ...)
Param1, Param2, ...
Parameters and return value are defined by the function.

Bind

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.