拖延症患者最近终于拿起了屯了好久的go语言圣经,开始了go语言的踩坑之旅:
0.
接连受到公司老哥的鄙视,所以在技术方面的问题放弃使用baidu,一心一意使用google。上学时代打下的英语基础还不错,所以基本可以完成查、读、写的功能。
发现国外的活跃社区真的挺多的,好多问题都能得到及时解决,大家的文章和回答质量也很高。
所以学好英语对程序员真的很重要,大家一定要多多学习!!!
//下面开始正式的踩坑记录:
//我的主要使用环境时centOs7,所以更关注在unix环境下的使用,当然win的环境后续也会跟进;
1.
关于go的安装、配置。
基本过程去搜索一下都有,发现这个问题是因为根据书中的例子导入了一个自定义包,但是 build 时一直报错,所以去认真查了一下关于包的机制,发现如下:
https://github.com/golang/go/wiki/SettingGOPATH
这是guthub上go wiki给出的解释,从中可以看出,我们设置的GOPATH 时我们实际的工作空间(workspace),可以理解为项目的根目录。并且若我们不自己设置的话,$GOPATH会自动设置为$HOME/go(unix)下。
关于在unix系统中的GOPATH的一些注意事项:
a.GOPATH能够时系统中的任何目录;
b.在GO1.8后GOPATH的初始路劲为:$HOME/go
c.注意:GOPATH不能和go的安装目录相同。
我个人比较喜欢用bash方法设置,所以这里贴出了bash的方法:
具体步骤按照上面来就OK。
(win的相关设置在上述网址中也能找到)。
贴几篇文章:
https://blog.learngoprogramming.com/what-are-goroot-and-gopath-1231b084723f
2.关于包的机制:
go 语言的特点之一就是:
package 和 import;
在go语言圣经中有这样的描述:
“例如,gopl.io/ch1/helloworld 包的文件存储在目录 $GOPATH/srcgopl.io/ch1/helloworld 中”;
从中可以理解到:
(1)go语言会根据$GOPATH去寻找包文件;
(2)目录最后的helloworld时一个文件夹的名字,不是想C语言或者php中的某个类或者.h/.hpp的具体文件名。
所以在构建workspace时,要有src文件夹以及相关路径中的文件夹;
按$GOPATH路径寻找是根据自定义包而言,而对于go的标准包,路径则是:$GOROOT/src
-----------2019/4/27