前言

2021年12月14日,Go官网公布了Go 1.18 Beta 1版本。

Go团队负责人Russ Cox在官网博客针对该版本公布做了具体阐明。

自己针对Russ的原文做了一个翻译,以飨读者。

原文翻译

谷歌Go团队Russ Cox

2021.12.14

咱们刚刚公布了Go 1.18 Beta 1版本,大家能够从Downloads - go.dev进行下载。

官网正式的1.18版本还须要几个月才会对外公布。这是Go 1.18版本的第一个Beta版本,让大家能够提前感触新版本的性能,如果大家在应用过程中遇到了任何问题,也欢送提出来。

Go 1.18 Beta 1版本凝聚了谷歌的整个Go团队以及来自世界的Go语言贡献者的大量心血和付出,咱们十分期待听到大家对新版本的反馈。

Go 1.18 Beta 1版本是第一个反对泛型的Go预览版本(preview release)。泛型是Go 1.0版本公布以来Go语言做出的最重要的改革,也是咱们团队对繁多语言做过的最大改革。对于任何重大的新性能上线,让用户试用并发现bug是通用常规,泛型也不例外,大家能够先提前尝鲜,审慎应用。

此外,对于一些非凡场景,比方递归泛型的特定品种反对会延后在将来的版本公布。咱们晓得有一些晚期泛型使用者对于泛型应用得很欢快,如果你有一些场景认为适宜应用泛型,咱们也心愿你能够尝试下这个beta版本。咱们公布了一个对于泛型的简要教程,链接地址:Tutorial: Getting started with generics - go.dev,咱们也在上周的GopherCon会议上做了相干技术分享,链接地址:https://www.youtube.com/watch...。你也能够在Go Playground的Go dev模式下试用泛型,链接地址:Go Playground - go.dev。

Go 1.18 Beta 1增加了对于含糊测试(fuzzing-based tests)的内置反对,用于主动查找可能导致程序解体或者返回非法值的歹意输出。

Go 1.18 Beta 1新增了一个Go工作区模式(Go workspace mode),让你能够同时应用多个Go模块,这对于大型项目而言十分有用。

Go 1.18 Beta 1扩大了go version -m命令,这个命令会记录编译详细信息,比方编译标记。程序能够应用debug.ReadBuildInfo来查问本人的编译详细信息,还能够应用debug/buildinfo包来读取其它二进制文件的编译详细信息。这个性能是为了给帮忙Go二进制文件生成软件资料清单(software bill of materials, SBOM)的所有工具提供底层反对。

在往年早些时候,Go 1.17新增了基于寄存器的调用约定,用于减速Go代码在x86-64机器上的运行速度。Go 1.18 Beta 1扩大了这项性能到ARM64和PPC64架构上,会带来大略20%的速度晋升。

感激为这个Beta版本做出奉献的所有人,特别感谢谷歌的Go团队,大家为了让泛型在Go里实现,多年来始终不知疲倦地工作。咱们走过了漫长的一段路,咱们对目前的后果很称心,也心愿大家可能喜爱。

大家能够通过https://go.dev/tip/doc/go1.18查看Go 1.18 Beta 1版本的全副变更内容。

和以前一样,特地是对于beta版本,如果大家发现了任何问题,欢送在GitHub上提issue。

咱们期待大家可能享受测试beta版本的过程,也祝大家在2021年残余的日子里过得舒心。

节日快乐!

结尾

也欢送大家关注自己公众号:coding进阶,学习更多Go、微服务和云原生架构相干常识。

GitHub最风行的golang代码速查表中文翻译版本:https://github.com/jincheng9/...

Golang入门,中级到高级教程:https://github.com/jincheng9/...