📜  Golang 中的 main 和 init函数(1)

📅  最后修改于: 2023-12-03 14:41:34.004000             🧑  作者: Mango

Golang 中的 main 和 init 函数

在 Golang 中,main 是程序的入口点,它会被最先执行。除此之外,Golang 还有一个非常重要的函数 init,它也是被自动调用的,但它在 main 函数执行之前被调用。本文将会详细讲解这两个函数的用法和区别。

main 函数

在 Golang 程序中,程序的 main 函数是程序的入口点。有且仅有一个 main 函数,它的函数原型如下:

func main() {
    // 代码逻辑
}

当我们编写 Golang 程序时,我们必须要有一个 main 函数才能让程序正常运行。在 main 函数中,我们可以编写程序的逻辑,比如打印一些内容,读写文件等等。

下面是一个简单的示例程序:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

运行该程序,控制台将会输出 Hello, World!

init 函数

init 函数也是一个函数,在 Golang 中被称为初始化函数。与其他函数不同的是,init 函数不能手动调用,它是在程序运行时自动调用的。init 函数与 main 函数的关系是,init 函数会在 main 函数执行之前被调用,而且每个包中都只能有一个 init 函数。

init 函数的函数原型如下:

func init() {
    // 代码逻辑
}

init 函数在程序初始化时使用,比如初始化需要用到的资源、初始化日志、设置代理等等。下面是一个示例程序:

package main

import "fmt"

func init() {
    fmt.Println("init function")
}

func main() {
    fmt.Println("Hello, World!")
}

输出结果:

init function
Hello, World!

注意init 函数的执行顺序与包的导入顺序有关,每个包中的 init 函数都会在 main 函数执行之前被执行。

总结

在 Golang 中,main 函数是程序的入口点,它会被最先执行。除此之外,还有一个非常重要的函数 init,它也是被自动调用的,但它在 main 函数执行之前被调用。init 函数在程序初始化时使用,比如初始化需要用到的资源、初始化日志、设置代理等等。使用 init 函数可以让我们在程序启动之前先对程序进行一些初始化的工作,让程序更加稳定。