go的import与python或java不太一样,第一次搞go开发在本地封装lib后import时可能会浪费不少时间,这里说明下,go的import分两种场景:
1.import地址是一个可访问的git项目url
依赖库存在于gitserver,直接import即可:
import "github.com/yanjingang/murmur"
2.import地址是本地的项目内lib封装
要import的是项目内部文件,且项目尚未上传gitserver,还在本地开发中。这种情况下直接import 会提示cannot find module providing package,需要先设置GOPATH,且把项目都放在$GOPATH/src/projectxxxx 位置,具体步骤如下:
#1.设置GOPATH
vim ~/.bashrc
#go
export GOPATH=/Users/yanjingang/project/gopath/
export GO111MODULE=on
export GOPROXY=https://goproxy.io
#生效
source ~/.bashrc
#2.创建测试hello项目
mkdir $GOPATH/src/hello #项目目录
mkdir $GOPATH/src/hello/pkg1 #项目内部封装包目录
vim $GOPATH/src/hello/pkg1/abc.go
package pkg1
func Hello() string { //注意,只有首字母大写的函数是public外部可访问的
return "Hello import pkg!"
}
vim $GOPATH/src/hello/main.go
package main
import (
"fmt"
"hello/pkg1"
)
func main(){
var ret = pkg1.Hello() //调用与abc.go文件名没关系,只跟package和目录层级有关系
fmt.Println(ret)
}
#3.创建项目go.mod
cd $GOPATH/src/hello
go mod init hello
#4.运行测试
go run main.go
屏幕输出:Hello import pkg!
yan 2019.6.3 22:31