In the Go language, the init() method is used for package initialization; after initializing each package, the init() function will be automatically executed, and the execution priority is higher than the execution priority of the main function. The init() method is usually used for: 1. Variable initialization; 2. Check/repair status; 3. Registrar; 4. Run calculations. The init() function is automatically called and executed when the program is running, and it cannot be actively called in the code. The init functions of different packages determine the execution order of the initialization functions according to the dependencies imported by the packages.
The operating environment of this tutorial: Windows 7 system, GO version 1.18, Dell G3 computer.
Detailed description of the Go init function
The init function in the go language is used to initialize the package (package). This function is of the go language. An important feature
When the program is executed, the import package statement will automatically trigger the call of the init() function inside the package.
After initializing each package, the init() function will be automatically executed, and the execution priority is higher than the execution priority of the main function.
It should be noted that the init() function has no parameters and no return value.
The init function is usually used for:
Running calculation
#The init() function is automatically called and executed when the program is running, and it cannot be actively called in the code.
The sequence of package initialization execution is shown in the figure below:
The result is:
10 Hello 沙河
The init() function has the following characteristics:
The init function is a function used to initialize the package before program execution, such as initializing variables in the package, etc.
Each package can Having multiple init functions
Each source file of a package can also have multiple init functions
Multiple init functions in the same package The execution order of the go language has no clear definition (explanation)
The init functions of different packages determine the execution order of the initialization function according to the dependencies imported by the package
The init function cannot be called by other functions, but is automatically called before the main function is executed.
Package initialization
In order to use an imported package, it must first be initialized. Initialization is always performed in a single thread and in the order of package dependencies. This is controlled by Golang's runtime system, as shown below:
##initial.go
package main import "fmt" var _ int64=s() func init(){ fmt.Println("init function --->") } func s() int64{ fmt.Println("function s() --->") return 1 } func main(){ fmt.Println("main --->") }
function s() —> init function —> main —>
Feature introduction
The init function does not need to pass in parameters, nor does it need to return any value. In contrast to main, init is not declared and therefore cannot be referenced.package main import "fmt" func init(){ fmt.Println("init") } func main(){ init() }
undefined:init".
package main import "fmt" func init(){ fmt.Println("init 1") } func init(){ fmt.Println("init2") } func main(){ fmt.Println("main") } /* 实施结果: init1 init2 main */
var precomputed=[20]float64{} func init(){ var current float64=1 precomputed[0]=current for i:=1;i<len(precomputed);i++{ precomputed[i]=precomputed[i-1]*1.2 } }
Side effects of Go package import rules
Go is very strict and does not allow references to unused packages. But sometimes you reference the package just to call the init function to do some initialization. The purpose of the empty identifier (i.e. the underscore) is to solve this problem.import _ "image/png"
Go video tutorial, Programming teaching】
The above is the detailed content of What is the use of the init() method in go language?. For more information, please follow other related articles on the PHP Chinese website!