现代快报

首页 » 常识 » 问答 » Go117快报将移除GOPATH
TUhjnbcbe - 2022/10/26 14:54:00
泉州白癜风医院 http://baijiahao.baidu.com/s?id=1700332949771012291&wfr=spider&for=pc

大家好,我是站长polarisxu。

是的,没看错,Go1.16刚正式发布,但这里说的是Go1.17将会包含的改变(不出意外的话),我会出一系列文章介绍Go1.17的变化。(好吧,内卷了,哈哈哈哈!)

关于Go1.16的变化。Reddit上有一张图总结的挺好的:

相关的知识点,我之前也写过很好几篇文章,有兴趣的可以看看:

Go1.16的这个新变化需要适应下:goget和goinstall的变化提前试用将在Go1.16中发布的内嵌静态资源功能基于Go1.16实现静态文件的HTTPCache图书《Go语言标准库》更新了:io/fs包讲解刚刚Go官方发表博文[1],针对Go1.16中“Modulesonbydefault”进行了详细讲解。默认启用Module是什么意思?也就是说GOMODULE=on,进一步,即使没有go.mod,go命令现在仍以模块感知模式(module-awaremode)构建包。

尽管如此,你至少还可以手动禁用Module,即设置GOMODULE=off。

但官方计划在Go1.17中移除GOMODULE这个环境变量,届时将只能使用Module模式。Go语言总是针对某个问题的尽量只有一种解决方案,保持其简单的“本性”,我个人还是挺喜欢的。当然我相信也会有人不喜欢。

这里给大家一些建议:

网上的文章,讲解Go环境搭建的,如果不是基于module,而是GOPATH的,直接忽略。GOPATH的历史,有兴趣可以了解,但作为新手,入门时多半下载的最新版本Go,这时如果看到文章还是GOPATH年代的,基本环境都搞不定,会很有受挫感。目前市面上的图书,大部分都还是基于GOPATH的(注:我出版的《Go语言编程之旅》是基于Module的),这部分内容,基本也可以略过,毕竟GOPATH要进博物馆了。如果还没有迁移到支持Module的版本,这半年时间尽快迁移吧,毕竟现在的库基本会基于Module构建,Go1.17预计年8月发布,距离Go1.11过去好几个版本了,给了充足的过度时间。此外,在Go1.17中关于module的特性还会有其他改进,比如支持lazymoduleloading[2],这应该会使模块加载过程更快,更稳定。对Go1.17中其他设计模块变化的部分,可以通过

1
查看完整版本: Go117快报将移除GOPATH