Understanding functions
This is an introduction to functions.
Function basics
Functions are named program blocks containing a set of statements to be executed when the
function is invoked with a CALL
statement, or when the function is used in an expression, or when the function is registered in a callback mechanism like WHENEVER ERROR CALL
.
Parameters and return values
Functions can get input parameters and return zero, one or several values.
Scope of functions
A function is defined in a program module, and is by default visible to all modules (it is
PUBLIC
). A function can be declared as PRIVATE
to the module where
it is defined. In this case the function is hidden to other modules. This concept is explained in
Scope of a function
Function references
It is possible to hold a function reference in a program variable. The variable can then be assigned with any function reference that is declared with the same function signature as the type used to define the variable.
Function references apply only to regular functions. It is not possible to use a method reference.
Functions as methods for a type
When declaring a function with a receiver variable and receiver type enclosed in parentheses before the function name, it becomes a method acting on the specified type.
Use methods in conjunction with interfaces to write clear robust code by using encapsulation and polymorphism concepts.
Function attributes
Functions can be declared with function attributes, to define additional information on the function.