go init函数

2019-02-28  本文已影响0人  StevenQin

每一个源文件都可以包含一个int函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前调用

//通常在init函数做初始化的工作
func init() {
    fmt.Println("init()....")
}
func main() {
    fmt.Println("main()....")
}

细节

1、如果一个文件中包含全局变量,init,main 执行的顺序为:全局变量 --> init --->main

package main

import (
    "fmt"
)

var age = test()

func test() int {
    fmt.Println("test()...")
    return 90
}

//通常在init函数做初始化的工作
func init() {
    fmt.Println("init()....")
}
func main() {
    fmt.Println("main()....")
    fmt.Println("age=", age)
}

2、init的主要作用是用于初始化工作

新建一个uitls/uitls.g

//uitls.go中的代码
package utils

import (
    "fmt"
)

var Age int
var Name string

func init() {
    fmt.Println("uitls中的init()....")
    Age = 100
    Name = "tom~~"
}
//---------------------------------------------
//main.go中的代码
package main

import (
    "demofunc02/utils"
    "fmt"
)

var age = test()

func test() int {
    fmt.Println("test()...")
    return 90
}

//通常在init函数做初始化的工作
func init() {
    fmt.Println("main包中的init()....")
}
func main() {
    fmt.Println("main()....")
    fmt.Println("age=", age)

    fmt.Println("utils中初始化的Age=", utils.Age, ",utils中初始化的Name=", utils.Name)
}

3、

上一篇下一篇

猜你喜欢

热点阅读