golang快速入门[7.1]-项目与依赖管理-gopath

前文

前言

gopath

gopath是什么

gopathgorootgo envgo env gopath
C:\Windows\system32> go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\jackson\AppData\Local\go-build
set GOENV=C:\Users\jackson\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\jackson\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
...
$HOME/go%USERPROFILE%\ggopathsrcbinpkg
go/
├── bin
├── pkg
└── src
$GOPATH/bingo install$GOPATH/pkgdarwin_amd64go module$GOPATH/src
go/
├── bin
     └── main.exe
├── pkg
     ├── darwin_amd64
     └── mod
└── src
    ├── github.com
    │   ├── tylfin
    │   │   ├── dynatomic
    │   │   └── geospy
    │   └── uudashr
    │       └── gopkgs
    └── golang.org
        └── x
            └── tools
go get$GOPATH/srcgo get github.com/dreamerjackson/theWayToGolang
go/
├── bin
├── pkg
└── src
    └── github.com
           └── dreamerjackson
                     └── theWayToGolang
go get-u$GOPATH/srcfmt
import "blue/red"
$GOPATH/src/blue/red

同理,如果导入为

import "github.com/gobuffalo/buffalo"
$GOPATH/src/github.com/gobuffalo/buffalo

下面我们用一个例子来说明导入第三方包

$GOPATH/srcmymathadd.go
» mkdir mymath
» cd mymath
» touch add.go

add.go的内容如下,要注意导出的函数必须是首字母大写的,这是go语言的规则。

package mymath

func Add(a int, b int) int {
    return a + b
}
$GOPATH/srcmymathadd
package main

import (
    "fmt"
    "mymath"
)

func main() {
    result := mymath.Add(1, 2)
    fmt.Println("result:", result)
}
go run main.go1+23

gopath的优劣

gopath

总结

go modulego modulego module

参考资料

更多原创文章干货分享,请关注公众号

加技术交流群请加微信(注明:交流群):ywj2271840211