Go1.18 正式发布,揭秘三大特性

简介: Go1.18 正式发布,揭秘三大特性

Go1.18 正式发布



重磅消息,也是迟来的消息,Go官方团队在2022年3月15号发布了新的版本,那就是Go 1.18。Go 1.18是一个重大的版本,它包含了一些新特性、性能改进,以及该语言有史以来最大的变化。毫不夸张地说,Go 1.18的部分设计开始于十多年前,也就是第一次发布Go的时候。


支持泛型编程


在Go 1.18中,引入了泛型代码的支持。支持泛型是Go中非常重要的一个特性。我们可以通过官方给的泛型教程来了解这个新特性,并探索使用泛型来优化和简化我们的代码。


支持fuzzing模糊测试


在Go 1.18中,引入了fuzzing模糊测试,可以帮助我们发现Go代码里的漏洞或者可能导致程序崩溃的输入。Go官方团队也在官网发布了fuzzing入门教程,帮助大家快速上手。

注意:fuzzing模糊测试和Go已有的单元测试以及性能测试框架是互为补充的,并不是替代关系。


支持Workspaces工作空间


Go modules几乎被普遍采用,在Go官方团队的年度调查中,Go用户的满意度非常高。在2021年用户调查中,使用modules的用户最常见的挑战是跨多个modules工作。在Go 1.18中,我们已经用新的Go Workspaces工作空间模式解决了这个问题,这使得处理多个modules变得简单。


20%的性能提升


Apple M1, ARM64, and PowerPC64的用户欢呼吧!Go 1.18将CPU性能提高了20%,这是因为Go 1.17对这些架构的寄存器ABI调用约定进行了扩展。为了强调这个版本的重要性,20%的性能改进必须得提出来,这是Go官方团队的重要成果!


小结


Go 1.18远不止这些特性和优化,还有很多其他新增的特性,比如增加net/netip包,客户端默认禁用TLS 1.0和1.1协议等,大家下来可以自行探索。

后期的文章会重点将以上几个新增特性展开来讲,比如泛型的使用场景和用例,fuzzing的强大功能验证等,因为Go官方说这个版本是一个重大里程碑版本,所以我想未来很多开发者将会拥抱它!

相关文章
|
6月前
|
XML JSON Go
掌握Go语言:Go语言结构体进阶,探索高级特性与实用技巧(23)
掌握Go语言:Go语言结构体进阶,探索高级特性与实用技巧(23)
|
6月前
|
IDE Go 开发工具
一文搞懂Go1.18泛型新特性
一文搞懂Go1.18泛型新特性
80 0
|
6月前
|
安全 Go
Go语言并发新特性:单向通道的读写控制
Go语言并发新特性:单向通道的读写控制
94 0
|
17天前
|
并行计算 安全 Go
Go语言的并发特性
【10月更文挑战第26天】Go语言的并发特性
8 1
|
5月前
|
算法 物联网 编译器
Go 1.23 新特性前瞻
【6月更文挑战第9天】Go 1.23 预计将引入更灵活的错误处理、性能优化、语法改进和标准库增强。可能包括编译器优化、新的网络特性,以及对现有函数的扩展。虽然具体细节待官方发布,但这些更新将进一步提升 Go 语言的效率和适用性,吸引开发者并改善编程体验。关注官方消息以掌握最新特性,助力项目开发。
566 8
|
1月前
|
安全 Java Go
Go语言的其他特性
【10月更文挑战第10天】Go语言的其他特性
|
2月前
|
安全 Go C语言
Go常量的定义和使用const,const特性“隐式重复前一个表达式”,以及iota枚举常量的使用
这篇文章介绍了Go语言中使用`const`定义常量的方法,包括常量的特性“隐式重复前一个表达式”,以及如何使用`iota`实现枚举常量的功能。
|
3月前
|
Prometheus Cloud Native Go
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
|
3月前
|
Go
Go 1.21的新特性: 切片和映射
Go 1.21的新特性: 切片和映射
|
3月前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围