Go1.17 相关的功能,之前陆陆续续介绍过,比如: - [Go1.17 新特性:新版构建约束](https://mp.weixin.qq.com/s/1JfYNZR8dH2eaCRuLJmJcg) - [Go1.17 新特性之切片变数组](https://mp.weixin.qq.com/s/cl-Qsj6oK_6MKuMZHSDV5Q) - [Go1.17 快报之标准库越来越注重易用性](https://mp.weixin.qq.com/s/6MWl8eT0KetLpLql_YLf4A) - [Go1.17 这个新特性竟然是6年前提出来的](https://mp.weixin.qq.com/s/8Ju2-daS0s-esDAezP-lZw) 按照计划,Go1.17 在 8 月份如期发布了(刚刚发布)。关于 Go1.17 更多的细节特性,可以参考官方文档。 ![go1.17-release.png](https://static.studygolang.com/210817/c139771a3fbfd1bcda745120b3677483.png) Go1.17 增加了 Windows/ARM64 的支持。在这个版本中引入了修剪过的模块图。在 go.mod 文件中指定 Go 1.17 或更高版本的模块,其模块图仅包含其他 Go 1.17 模块的直接依赖关系,而不包含其传递依赖关系。这应该有助于避免需要下载或读取 go.mod 文件。这可节省日常开发的时间。此外,unsafe 增加了两个函数。 更多详细信息可以参考官方文档:<https://golang.org/doc/go1.17>。下载最新版本,可以到「Go语言中文网」:<https://studygolang.com/dl>。 随着 1.17 的发布,1.18 的开发也重新开放开发。为什么说重新?因为之前有进行相关的开发工作。 1)internal/goversion/goversion.go 中的 Version 常量改为 18: ```go // Version is the Go 1.x version which is currently // in development and will eventually get released. // // It should be updated at the start of each development cycle to be // the version of the next Go 1.x release. See golang.org/issue/40705. const Version = 18 ``` 这是第一个提交的 CL,因为它标志着代表 Go1.18(Go1.17)的主分支的开始。 2)泛型分支:dev.typeparams 合入 master。这就意味着,Go1.18 中包含泛型已经实锤了。很显然,dev.typeparams 分支需要提前合并,毕竟是大改动。 关于 Go1.18 的常规开发就可以进行了。 文档和开发同步进行:关于 1.18 的发布文档已经开始了。 ![start1.18.png](https://static.studygolang.com/210817/5f90d5755b9e645be09eabd3b7972d53.png)