美文网首页
go init函数

go init函数

作者: StevenQin | 来源:发表于2019-02-28 11:37 被阅读0次

    每一个源文件都可以包含一个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、

    相关文章

      网友评论

          本文标题:go init函数

          本文链接:https://www.haomeiwen.com/subject/exlhuqtx.html