1、init和main两个函数介绍
在 Go 语言中,init 和 main 是两个特殊的函数,它们在程序启动时有特定的作用和调用时机。除了这两个,Go 没有其他具有特殊意义的函数,这是由 Go 语言的设计决定的,旨在保持语言的简洁和清晰。
init 函数:
用于初始化设置,每个包可以有多个 init 函数,这些函数在程序开始执行时自动被调用,且在任何其他代码执行前完成。init 函数不能被其他函数调用。
func init(){
//函数体
}
main 函数:
是程序的入口点,只能在 main 包中出现一次。在 init 函数之后被调用,用于执行程序的主要操作。
func main(){
//函数体
}
2、init 函数和 main 函数的执行顺序
init 函数总是在 main 函数之前执行。
init 函数主要用于初始化程序执行前的一些准备工作,比如设置全局变量、初始化配置等。Go 程序在启动时会按照它们出现的顺序自动调用每个文件中的所有 init 函数,然后才会调用 main 函数。
3、init 函数和 main 函数的异同
相同点:
两个函数在定义时 不能有任何的参数和返回值 ,且 Go 程序 自动调用(一般函数都要先声明,再调用。而 init 函数和 main 函数只声明就行,Go 程序会自己进入)。
不同点:
init可以应用于任意包中,且可以重复定义多个。
main函数只能用于main包中,且只能定义一个。
4、题外话
除这两个函数外,Go 中的其他函数都是普通函数,没有特殊的调用时机或用途。它们可以根据需要在程序中定义和调用,但它们的执行完全取决于程序的逻辑和函数调用顺序。
在实际的 Go 程序中,通常会定义许多其他函数以执行各种任务,例如处理数据、执行计算、处理 I/O 操作等,但这些函数都是普通函数,没有 init 和 main 函数那样的特殊地位或自动调用机制。