Func Object

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

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:

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

Type: Integer

Optional: the one-based index of a parameter. If omitted, Boolean indicates whether the function has any ByRef parameters.

Returns a boolean value indicating whether the parameter is ByRef. If the function is built-in or ParamIndex is invalid, an exception is thrown.

IsOptional

Determines whether a parameter is optional.

Boolean := Func.IsOptional(ParamIndex)
ParamIndex

Type: Integer

Optional: the one-based index of a parameter. If omitted, Boolean indicates whether the function has any optional parameters.

Returns a boolean value indicating whether the parameter is optional. If ParamIndex is invalid, an exception is thrown.

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