Golang main和init函数

Golang main和init函数

Go语言为特殊目的保留了两个函数,这两个函数是 main()init( )函数。

main()函数

在Go语言中, main 包是一个特殊的包,用于可执行的程序,这个包包含main()函数。main()函数是一种特殊类型的函数,它是可执行程序的入口点。它不接受任何参数,也不返回任何东西。Go会自动调用main()函数,所以不需要明确调用main()函数,每个可执行程序必须包含单一的main包和main()函数。

例子

// Go program to illustrate the
// concept of main() function
  
// Declaration of the main package
package main
  
// Importing packages
import (
    "fmt"
    "sort"
    "strings"
    "time"
)
  
// Main function
func main() {
  
    // Sorting the given slice
    s := []int{345, 78, 123, 10, 76, 2, 567, 5}
    sort.Ints(s)
    fmt.Println("Sorted slice: ", s)
  
    // Finding the index
    fmt.Println("Index value: ", strings.Index("GeeksforGeeks", "ks"))
  
    // Finding the time
    fmt.Println("Time: ", time.Now().Unix())
  
}

输出

Sorted slice:  [2 5 10 76 78 123 345 567]
Index value:  3
Time:  1257894000

init()函数

init() 函数就像main函数一样,不接受任何参数,也不返回任何东西。这个函数存在于每个包中,当包被初始化时,这个函数被调用。这个函数是隐式声明的,所以你不能从任何地方引用它,你可以在同一个程序中创建多个 init() 函数,它们按照创建的顺序执行。你可以在程序中的任何地方创建init()函数,并且按照文件名的词法顺序(字母顺序)调用。允许在init()函数中加入语句,但一定要记住init()函数是在调用main()函数之前执行的,所以它不依赖于 main() 函数。 init() 函数的主要目的是初始化那些不能在全局范围内初始化的全局变量。

例子

// Go program to illustrate the
// concept of init() function
  
// Declaration of the main package
package main
  
// Importing package
import "fmt"
  
// Multiple init() function
func init() {
    fmt.Println("Welcome to init() function")
}
  
func init() {
    fmt.Println("Hello! init() function")
}
  
// Main function
func main() {
    fmt.Println("Welcome to main() function")
}

输出

Welcome to init() function
Hello! init() function
Welcome to main() function

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程