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)