Go語言的程式碼通過包(package
)組織,包類似於其他語言裡的庫(libraries
)或者模組(modules
)。一個包由位於單個目錄下的一個或多個go原始檔組成,目錄定義包的作用。每個原始檔都以一條package宣告語句開始,例如package main
,表示該檔案屬於main包,緊跟著一系列匯入(import
)的包,之後是儲存在這個檔案裡的程式語句。
Go的標準庫提供了100多個包,以支援常見功能,入輸入、輸出、排序以及文字處理。比如fmt
包,就含有格式化輸出、接收輸入的函式。Println
是其中一個基礎函式,可以列印以空格間隔的一個或多個值,在最後新增一個換行符,從而輸出一整行。
main
包比較特殊。它定義了一個獨立可執行程式,而不是一個庫。在main
包裡的main
函式也很特殊,它是整個程式執行時的入口(C系語言差不多都這樣)。main
函式所做的事情就是程式做的。當然了,main
函式一般呼叫其他包裡的函式完成很多工作,比如,fmt.Println
。
總結一下就是,Go可執行程式可以分解成一個個包,其中必須存在main
包,main
包裡必須包含main
函式,程式執行本質上就是執行main
包裡的main
函式,main
函式結束程式就結束,就這樣。
示例程式碼:
//echo prints its command-line arguments
package main
import (
"fmt"
"os"
"strings"
)
func main() {
fmt.Println(strings.Join(os.Args[1:], " "))
fmt.Println(os.Args[0])
}
複製程式碼