main and init function in Golang Last Updated : 22 Aug, 2024 Comments Improve Suggest changes 20 Likes Like Report The Go language reserve two functions for special purpose and the functions are main() and init() function.main() functionIn Go language, the main package is a special package which is used with the programs that are executable and this package contains main() function. The main() function is a special type of function and it is the entry point of the executable programs. It does not take any argument nor return anything. Go automatically call main() function, so there is no need to call main() function explicitly and every executable program must contain single main package and main() function.Example: C // Go program to illustrate the // concept of main() function // Declaration of the main package package main // Importing packages import ( "fmt" "sort" "strings" "time" ) // Main function func main() { // Sorting the given slice s := []int{345, 78, 123, 10, 76, 2, 567, 5} sort.Ints(s) fmt.Println("Sorted slice: ", s) // Finding the index fmt.Println("Index value: ", strings.Index("GeeksforGeeks", "ks")) // Finding the time fmt.Println("Time: ", time.Now().Unix()) } Output:Sorted slice: [2 5 10 76 78 123 345 567] Index value: 3 Time: 1257894000 init() Functioninit() function is just like the main function, does not take any argument nor return anything. This function is present in every package and this function is called when the package is initialized. This function is declared implicitly, so you cannot reference it from anywhere and you are allowed to create multiple init() function in the same program and they execute in the order they are created. You are allowed to create init() function anywhere in the program and they are called in lexical file name order (Alphabetical Order). And allowed to put statements if the init() function, but always remember to init() function is executed before the main() function call, so it does not depend to main() function. The main purpose of the init() function is to initialize the global variables that cannot be initialized in the global context.Example: C // Go program to illustrate the // concept of init() function // Declaration of the main package package main // Importing package import "fmt" // Multiple init() function func init() { fmt.Println("Welcome to init() function") } func init() { fmt.Println("Hello! init() function") } // Main function func main() { fmt.Println("Welcome to main() function") } Output:Welcome to init() function Hello! init() function Welcome to main() function Create Quiz Comment A ankita_saini Follow 20 Improve A ankita_saini Follow 20 Improve Article Tags : Go Language Golang Explore OverviewGo Programming Language (Introduction) 7 min read How to Install Go on Windows? 3 min read How to Install Golang on MacOS? 4 min read Hello World in Golang 3 min read FundamentalsIdentifiers in Go Language 3 min read Go Keywords 2 min read Data Types in Go 7 min read Go Variables 9 min read Constants- Go Language 6 min read Go Operators 9 min read Control StatementsGo Decision Making (if, if-else, Nested-if, if-else-if) 5 min read Loops in Go Language 5 min read Switch Statement in Go 2 min read Functions & MethodsFunctions in Go Language 3 min read Variadic Functions in Go 3 min read Anonymous function in Go Language 2 min read main and init function in Golang 2 min read What is Blank Identifier(underscore) in Golang? 3 min read Defer Keyword in Golang 3 min read Methods in Golang 3 min read StructureStructures in Golang 7 min read Nested Structure in Golang 3 min read Anonymous Structure and Field in Golang 3 min read ArraysArrays in Go 7 min read How to Copy an Array into Another Array in Golang? 3 min read How to pass an Array to a Function in Golang? 2 min read SlicesSlices in Golang 14 min read Slice Composite Literal in Go 3 min read How to sort a slice of ints in Golang? 2 min read How to trim a slice of bytes in Golang? 3 min read How to split a slice of bytes in Golang? 3 min read StringsStrings in Golang 7 min read How to Trim a String in Golang? 2 min read How to Split a String in Golang? 3 min read Different ways to compare Strings in Golang 2 min read PointersPointers in Golang 8 min read Passing Pointers to a Function in Go 3 min read Pointer to a Struct in Golang 3 min read Go Pointer to Pointer (Double Pointer) 4 min read Comparing Pointers in Golang 3 min read ConcurrencyGoroutines - Concurrency in Golang 2 min read Select Statement in Go Language 4 min read Multiple Goroutines 2 min read Channel in Golang 7 min read Unidirectional Channel in Golang 2 min read Like