Go - Package Initialization
(Updated: )
The init Function
The init
function is a special function in Go:
- It is executed automatically when a package is imported
- It is used to initialize global variables, perform setup tasks and register any cleanup routines
- A package can have multiple
init
functions that will be executed in the order they are defined in
go
package mainimport "fmt"var message stringfunc init() { // Set the value of the global variable. message = "Hello, world!"}func main() { fmt.Println(message)}
Alternative
A better readable alternative to the init
function to do initialization in a package, is to use an explicit function call to initialize a variable.
go
package mainimport "fmt"var message = initialize()// An example to show an alternative way of doing initialization in a package.// This way of doing initialization is useful in packages other than `main`.func initialize() string { return "Hello, world!"}func main() { // In the `main` package, initialization can instead be done // at the start of the `main` function. fmt.Println(message)}