go init函数

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,743评论 0 38
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 扬起如意的风帆,驶向鸡年的港湾;撷取温暖的阳光,开始鸡年的吉祥;找寻人生的珍宝,继续鸡年的欢笑;停泊幸福的岸...
    金石可镂1阅读 2,629评论 0 0
  • 日子一天天划过,还是被时间裹挟着走,来不及顺畅的呼吸,也不能细细的咀嚼生活的滋味,慌乱而焦虑、没有章法,是我...
    娟卷隽阅读 3,800评论 0 0
  • 当然个头不要像现在这样。要留一头乌黑的长发,扎两条马尾一样的长辫子。系上一只漂亮的蝴蝶结,当我在风中奔跑的时候...
    任一心阅读 4,766评论 3 1