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.
- Bind: Binds parameters to the function and returns a BoundFunc object.
- IsByRef: Determines whether a parameter is ByRef.
- IsOptional: Determines whether a parameter is optional.
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
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.