Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go main和init函數(shù)

Go語言保留了兩個特殊用途的函數(shù),這些函數(shù)是main()init()函數(shù)。

main函數(shù)

在Go語言中,main包是一個特殊的軟件包,與可執(zhí)行程序一起使用,并且該package包含main()函數(shù)。在main()函數(shù)是一種特殊類型的函數(shù),它是可執(zhí)行程序的入口點(diǎn)。它不帶任何參數(shù)也不返回任何內(nèi)容。由于可以自動調(diào)用main()函數(shù),因此無需顯式調(diào)用main()函數(shù),并且每個可執(zhí)行程序必須包含一個package main和main()函數(shù)。

//主包的聲明
package main

//導(dǎo)入包
import (
    "fmt"
    "sort"
    "strings"
    "time"
)

func main() {

    //對切片進(jìn)行排序
    s := []int{345, 78, 123, 10, 76, 2, 567, 5}
    sort.Ints(s)
    fmt.Println("排序后的切片: ", s)

    // 查找索引值
    fmt.Println("索引值為: ", strings.Index("nhooo", "ks"))

    //顯示當(dāng)前時間戳
    fmt.Println("時間戳: ", time.Now().Unix())

}

輸出:

排序后的切片:  [2 5 10 76 78 123 345 567]
索引值為:  -1
時間戳:  1593335332

init()函數(shù)

init()函數(shù)就像main函數(shù)一樣,不帶任何參數(shù)也不返回任何東西。 每個包中都存在此函數(shù),并且在初始化包時將調(diào)用此函數(shù)。 該函數(shù)是隱式聲明的,因此您不能從任何地方引用它,并且可以在同一程序中創(chuàng)建多個init()函數(shù),并且它們將按照創(chuàng)建順序執(zhí)行。 您可以在程序中的任何位置創(chuàng)建init()函數(shù),并且它們以詞匯文件名順序(字母順序)調(diào)用。 并允許在init()函數(shù)中放置語句,但始終記住要在main()函數(shù)調(diào)用之前執(zhí)行init()函數(shù),因此它不依賴于main()函數(shù)。   init()函數(shù)的主要目的是初始化無法在全局上下文中初始化的全局變量。

package main 
  
import "fmt"
  
//多個init()函數(shù) 
func init() { 
    fmt.Println("Welcome to init() function") 
} 
  
func init() { 
    fmt.Println("Hello! init() function") 
} 
  
func main() { 
    fmt.Println("Welcome to main() function") 
}

輸出:

Welcome to init() function
Hello! init() function
Welcome to main() function
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清