源碼 :mysql
package main import ("fmt") // import "fmt" func main() { fmt.Println("Hello World!") }
在命令行切換到程序所在路徑下,go run HelloWorld.go。或者在HelloWorld.go程序所在路徑下,先執行 go build HelloWorld.go, 生成一個可執行文件HelloWorld.exe。而後直接在命令行輸入./HelloWorld便可執行!再或者使用JetBrain的軟件Goland,此軟件一樣能夠使用教育郵箱註冊。git
若是這樣導包: import (. "fmt"), 則fmt.Println()能夠略寫成Println() ,即 Print + 換行.github
格式化輸出: fmt.Printf("面積爲 : %d", area)sql
別名操做: 能夠把包名換成一個容易記憶的名字,如: import ( f "fmt"), 而後能夠 f.Print(),且只能使用 f 而不能再用 fmt.編程
import ( "database/sql" _ "github.com/ziutek/mymysql/godrv" )
_操做實際上是引入該包,而不直接使用包裏面的函數,實際調用了該包裏面的init函數。
函數
main 與 init 這兩個函數在定義時不能有任何的參數和返回值。
每一個package中的init函數都是可選的,但package中必須包含一個main函數。雖然一個package裏面能夠寫任意多個init函數,但推薦只用一個。
Go程序會自動調用init()和main()。先調用init函數,再調用main函數。
運行程序,必需要運行存在main函數的go文件。ui
初始化順序:
程序的初始化和執行都起始於 main 包。若是 main 包還導入了其它的包,那麼就會在編譯時將它們依次導入。有時一個包會被多個包同時導入,那麼它只會被導入一次(例如不少包可能都會用到 fmt 包,但它只會被導入一次)。當一個包被導入時,若是該包還導入了其它的包,那麼會先將其它包導入進來,而後再對這些包中的包級常量和變量進行初始化,接着執行init函數(若是有的話),依次類推。等全部被導入的包都加載完畢了,就會開始對main包中的包級常量和變量進行初始化,而後執行main包中的 init 函數(若是有的話),最後執行main函數。spa