English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go language retains two special-purpose functions, which aremain()andinit()函数。
In Go language,main包是一个特殊的软件包,与可执行程序一起使用,并且该package包含main()函数。在main()函数是一种特殊类型的函数,它是可执行程序的入口点。它不带任何参数也不返回任何内容。由于可以自动调用main()函数,因此无需显式调用main()函数,并且每个可执行程序必须包含一个package main和main()函数。
//主包的声明 package main //导入包 import ( "fmt" "sort" "strings" "time" ) func main() { //对切片进行排序 s := []int{345, 78, 123, 10, 76, 2, 567, 5} sort.Ints(s) fmt.Println("排序后的切片: ", s) // 查找索引值 fmt.Println("索引值为: ", strings.Index("w3codebox, "ks") //显示当前时间戳 fmt.Println("时间戳: ", time.Now().Unix()) }
输出:
排序后的切片: [2 5 10 76 78 123 345 567] 索引值为: -1 时间戳: 1593335332
init()函数就像main函数一样,不带任何参数也不返回任何东西。每个包中都存在此函数,并且在初始化包时将调用此函数。 该函数是隐式声明的,因此您不能从任何地方引用它,并且可以在同一程序中创建多个init()函数,并且它们将按照创建顺序执行。 您可以在程序中的任何位置创建init()函数,并且它们以词汇文件名顺序(字母顺序)调用。 并允许在init()函数中放置语句,但始终记住要在main()函数调用之前执行init()函数,因此它不依赖于main()函数。 init()函数的主要目的是初始化无法在全局上下文中初始化的全局变量。
package main import "fmt" //多个init()函数 func init() { fmt.Println("欢迎来到init()函数") } func init() { fmt.Println("你好!init()函数") } func main() { fmt.Println("欢迎来到main()函数") }
输出:
欢迎来到init()函数 你好!init()函数 欢迎来到main()函数