Functions in Lua can be defined anywhere in the global level of a chunk.
The syntax for function definition is:
functionfunction var ( parlist1 )
block end
When Lua pre-compiles a chunk, all its function bodies are pre-compiled, too. Then, when Lua ``executes'' the function definition, its body is stored, with type function, into the variable var .
Parameters act as local variables,
initialized with the argument values.
parlist1name , name
Results are returned using the return statement (see Section 4.4.3). If control reaches the end of a function without a return instruction, the function returns with no results.
There is a special syntax for definition of methods,
that is, functions which have an extra parameter self.
functionfunction var : name ( parlist1
) block end
A declaration like
function v:f (...)
...
end
is equivalent to
function v.f (self, ...)
...
end
that is, the function gets an extra formal parameter called self
.
Notice that
the variable v
must have been previously initialized with a table value.