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官方说这个版本是一个重大里程碑版本,所以我想未来很多开发者将会拥抱它!

相关文章
|
3月前
|
IDE Go 开发工具
一文搞懂Go1.18泛型新特性
一文搞懂Go1.18泛型新特性
58 0
|
3月前
|
安全 Go
Go语言并发新特性:单向通道的读写控制
Go语言并发新特性:单向通道的读写控制
66 0
|
9月前
|
设计模式 算法 编译器
Go方法特性详解:简单性和高效性的充分体现2
Go方法特性详解:简单性和高效性的充分体现
51 0
|
2月前
|
算法 物联网 编译器
Go 1.23 新特性前瞻
【6月更文挑战第9天】Go 1.23 预计将引入更灵活的错误处理、性能优化、语法改进和标准库增强。可能包括编译器优化、新的网络特性,以及对现有函数的扩展。虽然具体细节待官方发布,但这些更新将进一步提升 Go 语言的效率和适用性,吸引开发者并改善编程体验。关注官方消息以掌握最新特性,助力项目开发。
460 8
|
12天前
|
Prometheus Cloud Native Go
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
|
13天前
|
Go
Go 1.21的新特性: 切片和映射
Go 1.21的新特性: 切片和映射
|
12天前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
|
12天前
|
Go 开发者
Go1.22 新特性:Slices 变更 Concat、Delete、Insert 等函数,对开发挺有帮助!
Go1.22 新特性:Slices 变更 Concat、Delete、Insert 等函数,对开发挺有帮助!
|
3月前
|
Java 编译器 Go
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(一)
本文主要梳理自第六届字节跳动青训营(后端组)-Go语言原理与实践第一节(王克纯老师主讲)。
68 1
|
3月前
|
存储 JSON Java
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(三)
在 Go 语言里,符合语言习惯的做法是使用一个单独的返回值来传递错误信息。
46 0