Go項目結構和模塊導入
golang項目結構與其他語言類似,但是仍然有一些需要注意的地方。
項目結構
環境配置
go 命令依賴一個重要的環境變量:$GOPATH
,它表示GO項目的路徑,如下設置
export GOPATH=/home/t/gospace
對於GOPATH來說,允許多個項目目錄(Unix中為“:”,Windows中為“;”)。
項目目錄
在項目目錄中,一般包含三個文件夾,分別為src
,pkg
和 bin
。各個文件夾功能如下,
- src 存放golang源碼
- pkg 存放編譯后的文件
- bin 存放編譯后可執行的文件
模塊導入
在golang中,模塊導入包括兩種導入方式:相對路徑和絕對路徑。
相對導入
當前文件同一目錄的model目錄,但是不建議這種方式來import
import (
"./test1"
"../test2"
)
絕對導入
前提條件需要把該項目加入到golang的GOPATH中,
import (
"project/module1"
"project/module2/t"
)
import的其他操作
點操作
點操作的含義就是這個包導入之后在你調用這個包的函數時,你可以省略前綴的包名,
import . "fmt"
func test() {
Println("test")
}
別名操作
別名操作就是把包命名成另一個名字
import f "fmt"
func test() {
f.Println("test")
}
_操作
操作其實是引入該包,而不直接使用包里面的函數,而是調用了該包里面的init函數
文件1: module/module1.go
package module1
import "fmt"
func init() {
fmt.Println("this is module1")
}
文件2: main.go
package main
import (
"fmt"
_ "module"
)
func main() {
fmt.Println("this is a test")
}
output:
this is module1
this is a test