Function type

A function type must either be initialized before use, or it must be allowed to store nil.

A function has inputs and a result. The result can be a success result (also called output), failure result or panic result.
The success and failure results are part of the function's signature, the panic result is implicit.
There can be any number of input parameters and success results, but only one failure result and panic result.
A function with one input and one success result.
A function with input, success result and failure result.
Function literal example.
A function type requires initialization.