《Go语言从入门到精通》一书即将出版,位于 github.com/topxeq/goexamples 的库主要内容是Go语言代码示例,包含多种应用场景,也是该书的随附代码。更多的补充内容和示例代码,请到这里查阅。
另外,重要 请注意:
Go语言目前最新的在线文档已经换成了pkg.go.dev,原来的godoc.org已经不建议继续使用,访问的方法还是类似的。
Go语言从1.13版本之后采用了Go Modules作为默认的包管理方式,请务必阅读下面几点以便能够流畅阅读本书并使用其中的代码。
-
Go语言使用Go Modules作为包管理(或者叫做依赖管理)方式来代替传统的GOPATH方式,主要的应用场景是为了能够在较大的代码工程中更精细地控制使用到的各个包的版本。举一个简单的例子,比方说我们代码中依赖的一个包最新版本是3.1,但我们发现最新版本有一些意外的bug导致我们的代码无法编译,此时我们可以通过Go Modules的方式,修改包依赖的配置信息,强制要求我们的工程使用该包的3.0版本,当然这个版本是经过验证可以正常应用于我们工程的。
-
由于《Go语言从入门到精通》是以编程初学者和从其他语言迁移过来的开发者为主要阅读对象,以入门为主的读者,还是使用传统较单一的包管理模式进行初期研究与开发为好,避免头绪太多影响主线学习任务。并且传统的GOPATH方式默认从Github等网站抓取依赖包的master主分支下的代码,一般来说都是最新的代码,符合常规使用的情况。
-
但由于最新的Go语言环境已经默认采用Go Modules作为包管理工具,我们初期建议将其关闭,恢复使用传统的单一包管理模式。方法是:设置环境变量GO111MODULE的值为off,即在命令行模式下执行下述命令:
set GO111MODULE=off
这是Windows系统中的设置方法,如果是Mac OS或Linux系统,则需要用下述命令:
export GO111MODULE=off
如果将该环境变量的值设置成系统默认的则更好,具体方法可以参照书中相关章节的说明。如果要改回,将GO111MODULE的值清空或者设置为on即可。
有消息说Go语言即将推出的1.17版本之后将取消原有的GOPATH包方式,只保留Go Modules的包管理方式。建议初学者先安装Go的1.16以下的版本。