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

Sumário

Métodos

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.

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.

Properties

Nome

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.

Funções

Func [v1.1.00+]

Retrieves a reference to a function.

FunctionReference := Func(FunctionName)

FunctionName is the name of the function whose reference is retrieved, and must exist explicitly in the script.

This function returns a reference to FunctionName. If FunctionName does not exist explicitly in the script (by means such as #Include or a non-dynamic call to a library function), it returns 0.

This function can be used to call the function or retrieve information such as the minimum and maximum number of parameters.

The following example retrieves a reference to a function and displays information about it:

fn := Func("StrLen")
  MsgBox % fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.")