Golang package 相关概念
GOPATH的作用
GOPATH这个环境变量在编译中可以看作是编译的根目录,packages的搜索次序如下:
- go解析器所在目录之下的src, 比如go在C:\go\bin, 那么就是c:\go\src
- GOPATH指向的目录之下的src,比如GOPATH=c:/work/test/relative_path, 那么就是c:\work\test\relative_path\src
import相对路径
用一个实例说明
- 目录结构
C:\work\test\relative_path\src>ls
controllers main.go utils
- utils相关代码
C:\work\test\relative_path\src\utils>ls
auth.go
C:\work\test\relative_path\src\utils>cat auth.go
package utils
func Test1() string {
return "Test 1"
}
- controllers相关代码
C:\work\test\relative_path\src\controllers>ls
login.go C:\work\test\relative_path\src\controllers>cat login.go
package controllers
import "utils"
func Test2() string {
return utils.Test1()
}
- main.go代码
C:\work\test\relative_path\src>ls
controllers main.go utils
C:\work\test\relative_path\src>cat main.go package main
import (
"fmt"
"controllers"
)
func main() {
fmt.Println(controllers.Test2())
}
- 编译及运行
C:\work\test\relative_path\src>env GOPATH=c:/work/test/relative_path go build main.go
C:\work\test\relative_path\src>main.exe
Test 1
这个操作里面的要点就在于env GOPATH=c:/work/test/relative_path, 需要注意的是src这一层目录是必须的