编程环境Linux,开发工具VScode
go基础,在golang中:问题分析:
1.go环境解析:
在我们安装go的时候,会下载安装包,然后启用安装,在安装的过程中,需要指定安装路径
/usr/local/go
这个是我的安装路径。安装后go下面有这么多东西,这个就是我们的GOROOT路径。
然后我们发现,我们还需要一个GOPATH路径,GOPATH路径下有三个文件夹。
2.GOROOT和GOPATH?
这个时候新手可能会纳闷?什么是GOROOT?什么又是GOPATH?
GOROOT是我们指定的go安装路径。
什么是安装路径?如果我们现在在/usr/local/go下安装了go:1.6.5版本,GOROOT=/usr/local/go,那么我们现在执行go时,就是用go:1.6.5版本去执行的。所以我们可以在当前环境里创建很多个文件,/usr/local/go1,~/go2,~/loacl/go3,在go1里安装1.5,go2里安装1.6,go3里安装1.7,我们将GOROOT=go1,这样我们环境就使用的是1.5版本的go,我们将GOROOT=go2,这样我们环境就使用的是1.6版本的go,这样环境就可以兼容很多版本的go了,这个就是GOROOT。
GOPATH是我们指定的工程路径。
什么是工程路径?我们现在创建工程时,需要调用很多包,那么这些包我们是如何找到的,这是个问题。
找包流程:GOROOT>GOPATH。在我们设置的目录下,都存在一个src文件,这些包都在src文件里。
可以看到,GOROOT=/usr/loacl/go,这个是我 /usr/loacl/go/src下面的包,其中有我们非常熟悉的老伙伴包,fmt和log,这些包我们都是在GOROOT路径在调用的。
我设置的GOPATH路径为~/golang/gopath
这是我GOPATH下面src里的包,这里面的包就属于是我自己创建的包了。
我现在创建了一个新的包,add,我要调用我add里自己创建的方法,这个是属于自创的,也是官方里没有的,现在我只要设置了GOPATH=~/golang/gopath,那么当在找包的时候,就可以找到我的这个包了。
3.多个GOPATH
了解了上文的GOPATH和GOROOT,那我们现在也基本了解了go的工作机制了,很显然我们开发过程中不会设置多个GOROOT(go的版本),那么我们可以设置多个GOPATH吗?很显然是可以的,GOPATH里的包都是我们自己设置的,没有特殊性,我们设置两个路径,~/gopath1,~/gopath2,gopath1里有一个add的包,gopath2里有一个add2的包,我们只要设置
GOPATH=~/gopath1:~/gopath2
这样在找包的时候,会先去gopath1里寻找,找不到就会去gopath2里寻找,这样我们就可以配置多个GOPATH了。
4.PATH
你以为将GOROOT和GOPATH设置好就可以找包了吗?
前提是我们要将GOROOT和GOPATH加入PATH才行,这个才是做一切的前提,但是你既然安装好了golang,那么安装其他教程,肯定也是配置了。
但是再次提醒一次
#在etc下配置环境非永久环境,在此环境下才是永久环境配置
vi ~/.bashrc
#添加如下环境
GOROOT=xxx
GOPATH=xxx
PATH=$PATH:GOROOT:GOPATH