Go Functions: Difference between revisions
Line 25: | Line 25: | ||
==Function Body== | ==Function Body== | ||
<span id='Short_Variable_Declaration'></span>Go functions allow variables to be declared, inside the function, with the [[Go_Language#Short_Variable_Declaration|short variable declaration]]. The short variable declaration is not allowed anywhere else, except a function body. Parameters are variable visible inside the function body. | <span id='Short_Variable_Declaration'></span>Go functions allow variables to be declared, inside the function, with the [[Go_Language#Short_Variable_Declaration|short variable declaration]]. The short variable declaration is not allowed anywhere else, except a function body. Parameters are local variable for the function: variables visible inside the function body. | ||
{{Internal|Variables,_Parameters,_Arguments#Variable|Variables, Parameters, Arguments}} | {{Internal|Variables,_Parameters,_Arguments#Variable|Variables, Parameters, Arguments}} | ||
Revision as of 04:14, 26 August 2023
External
Internal
Overview
A function is a block of instructions, grouped together, and that optionally have a name.
Functions exist for code reusability reasons: the function is declared once and then can be invoked any number of times. The functions can be reused from within the project, or from other projects, if the function is declared as part of a package that is imported in the project that needs to use the function.
Function exist for abstraction reasons: they hide details into a compact "packaging" and improve the understandably of the code.
Declaration
The function declaration starts with the func
keyword followed by the function name and a mandatory parentheses pair.
func <function_name>([parameters]) [(return_declaration)] {
// body
[return [return_values]]
}
Parameters
The parentheses optionally enclose function parameters. The parameters are vehicles for the input data the function needs to operate on.
Function Body
Go functions allow variables to be declared, inside the function, with the short variable declaration. The short variable declaration is not allowed anywhere else, except a function body. Parameters are local variable for the function: variables visible inside the function body.
Return Declaration
Invocation
All functions, except main()
must be invoked explicitly from the program to execute.
A function is invoked, or called by specifying the function name, mandatory followed by open parentheses, optionally followed by arguments, if the function has parameters, then mandatory followed by closing parenthesis.
Arguments
main()
All programs in Go must have a main()
function, where the program execution starts. The main()
function must be declared in the main
package.
You never call this function. When a program is executed, the main()
gets called automatically.
Pass by Value vs. Pass by Reference vs. Pass by Pointer
Arrays are passed by value.
Built-in Functions
Built-in functions are available by default, without importing any package. Their names are predeclared function identifiers. They give access to Go's internal data structures. Their semantics depends on the arguments.
Length and Capacity
len()
len()
returns string length, array length, slice length and map size.
cap()
cap()
returns slice capacity.
Complex Number Manipulation
TO DO: Continue to Distribute These Built-in Functions
Allocation: new()
Making slices, maps and channels: make()
Appending to and copying slices: append(), copy()
Deletion of map elements delete()
Handling panics panic(), recover()
DEPLETE THIS
Built-in functions for type conversions.
deplete this Go Concepts - Functions