通常,一個 Go 項目在 GOPATH 下,會有以下三個目錄python
. ├── bin // 存放編譯後的可執行文件 ├── pkg // 存放編譯後的包文件 └── src // 存放項目源文件
通常狀況下,bin 和 pkg 目錄能夠不建立,go 命令會自動構建(如 go install),只須要建立 src 目錄便可。函數
// 當前程序的包名 package main // 導入其餘包 import "fmt" // 常量的聲明 const _PI float64 = 3.14 // 全局變量聲明 var title string = "Go 語言學習筆記" // 通常類型聲明 type newType int // 結構聲明 type Student struct{ } // 接口的聲明 type ILearn interface{ } // 由 main 做爲程序入口的啓動點 func main(){ fmt.Println("Hello Golang") }
package
來組織的(與 python 相似),package
是 最基本的分發單位 和 工程管理中依賴關係的體現; pakcage
聲明,表示源碼文件所屬代碼包。默認狀況下,除 main
的 package
包外,其餘的包名對應文件夾名稱;main
的 package
包,且必須在該包下面有 main()
函數;package
,一個 package
能夠拆分紅多個源文件;import
關鍵字來導入其餘非 main
包;const
關鍵字來定義常量;var
關鍵字定義全局變量;type
關鍵字來進行結構(struct
)或接口(interface
)的聲明;func
關鍵字來聲明函數;import
語句能夠導入源代碼文件中所依賴的 package
包,導入包後可使用 <PackageName>.<FuncName>
對包中的函數進行調用;import
可使用如下兩種方式:學習
單行導入code
package main import "fmt" import "os" import "time" import "io"
多行導入接口
package main import ( "fmt" "os" "time" "io" )
main
包導入其餘包,包將被順序導入;init
函數,將會自動執行 init
函數;main
中變量和常量進行初始化,而後執行 main
的 init
函數(若是存在),最後纔會執行 main
函數;在使用 import
導入 package
包時,能夠爲其設置別名:源碼
package main import io "fmt" func main(){ io.Println("Hello Golang") }
package main import ( io "fmt" ) func main(){ io.Println("Hello Golang") }
.
)標識的導入包後,調用該包中的函數時,能夠省略報名前綴名稱(不建議使用)package main import . "fmt" func main(){ Println("Hello Golang") }
_
)標識符導入包時,並非導入整個包,而是執行該包中的 init
函數,所以沒法經過包名來調用包中的其餘函或屬性。使用下劃線(_
)操做一般是將來註冊包裏的引擎,外部能夠方便的使用;以上三點不能夠同時使用。string