当前位置:首页 > 科技  > 软件

提升 Go 编程:Go 1.22 中有哪些新特性?

来源: 责编: 时间:2024-01-22 08:43:27 293观看
导读深入了解 Go 1.22 版本及其语言增强功能随着 Go 编程语言的不断发展,即将发布的版本 Go 1.22 承诺带来各种新功能、改进和变化。预计于 2024 年 2 月发布的 Go 1.22 引入了对语言、工具、运行时、编译器和核心库的增强

深入了解 Go 1.22 版本及其语言增强功能

随着 Go 编程语言的不断发展,即将发布的版本 Go 1.22 承诺带来各种新功能、改进和变化。预计于 2024 年 2 月发布的 Go 1.22 引入了对语言、工具、运行时、编译器和核心库的增强。让我们深入了解一些在这个即将发布的版本中开发者可以期待的重要变化和新增功能。Noa28资讯网——每日最新资讯28at.com

Noa28资讯网——每日最新资讯28at.com

语言的变化

(1) “For” 循环增强Noa28资讯网——每日最新资讯28at.com

在 Go 1.22 中,“for” 循环有两个显著的变化。在此之前,“for” 循环内声明的变量会在每次迭代中创建一次并进行更新。而新版本中,每次迭代都会创建新的变量,以防止意外的共享错误。此外,“for” 循环现在可以在整数上进行范围遍历,为循环结构提供了更多灵活性。Noa28资讯网——每日最新资讯28at.com

示例:Noa28资讯网——每日最新资讯28at.com

package mainimport "fmt"func main() {  for i := range 10 {    fmt.Println(10 - i)  }  fmt.Println("go1.22 has lift-off!")}

(2) 函数迭代器的范围(预览)Noa28资讯网——每日最新资讯28at.com

Go 1.22 包含了一个关于范围函数迭代器的语言变更的预览。可以通过使用 GOEXPERIMENT=rangefunc 构建来启用此功能。Noa28资讯网——每日最新资讯28at.com

工具

(1) Go 命令Noa28资讯网——每日最新资讯28at.com

Go 命令引入了与工作区依赖项相关的增强功能。工作区现在可以使用包含依赖项的 vendor 目录,而 go work vendor 命令会创建并使用此目录。值得注意的是,在传统的 GOPATH 模式中,go get 不再在模块外受支持。Noa28资讯网——每日最新资讯28at.com

(2) Trace 工具Noa28资讯网——每日最新资讯28at.com

Trace 工具的 Web UI 已进行了更新,解决了问题并提高了可读性。由 Go 1.22 或更新版本生成的跟踪将受益于这些改进,计划在未来版本中扩展到旧版本的跟踪。Noa28资讯网——每日最新资讯28at.com

(3) Vet 工具Noa28资讯网——每日最新资讯28at.com

Vet 工具引入了新的警告,包括:Noa28资讯网——每日最新资讯28at.com

  • 对循环变量的引用:反映循环变量语义的变化。
  • 在 append 后缺失值的警告。
  • 对推迟调用 time.Since 的警告。

运行时

(1) 垃圾收集元数据优化Noa28资讯网——每日最新资讯28at.com

Go 1.22 通过将垃圾收集元数据保持更接近每个堆对象来优化垃圾收集元数据。这提高了大多数程序的 CPU 性能 1–3%,并减少了内存开销。但是,它可能会影响依赖于特定内存对齐的程序,需要进行调整。Noa28资讯网——每日最新资讯28at.com

(2) Windows/AMD64 增强Noa28资讯网——每日最新资讯28at.com

在 windows/amd64 端口上,程序现在可以使用 SetUnhandledExceptionFilter Win32 函数来捕获 Go 运行时未处理的异常,增强了调试功能。Noa28资讯网——每日最新资讯28at.com

编译器

(1) 档案引导优化(PGO)改进Noa28资讯网——每日最新资讯28at.com

Go 1.22 中的 PGO 构建可以使更高比例的调用进行虚拟化,从而使大多数程序的性能提高 2–14%。编译器还引入了接口方法调用的改进内联启发式算法。Noa28资讯网——每日最新资讯28at.com

(2) 新的内联阶段(预览)Noa28资讯网——每日最新资讯28at.com

引入了一个增强的内联阶段的预览,其中包含在重要调用点提高内联能力的启发式算法,同时在不太关键的调用点上不鼓励内联。通过使用 GOEXPERIMENT=newinliner 构建来启用此功能。Noa28资讯网——每日最新资讯28at.com

链接器

链接器的 -s 和 -w 标志在所有平台上的行为更加一致,为 ELF 平台和 Windows 引入了其他功能。Noa28资讯网——每日最新资讯28at.com

核心库

(1) Math/Rand 版本 2Noa28资讯网——每日最新资讯28at.com

Go 1.22 引入了标准库中的第一个“v2”包:math/rand/v2。此版本带来了改进,包括一个新的全局生成器和更快的算法。Noa28资讯网——每日最新资讯28at.com

(2) 增强的 HTTP 路由模式Noa28资讯网——每日最新资讯28at.com

net/http 标准库中的 HTTP 路由模式变得更加表达,支持方法、通配符,并改进了重叠模式的处理。Noa28资讯网——每日最新资讯28at.com

对库的次要更改

核心库经历了与 Go 1 兼容性承诺一致的各种次要更改和更新。此外,整体上进行了性能改进。Noa28资讯网——每日最新资讯28at.com

结论

Go 1.22 为语言、工具、运行时、编译器和核心库带来了一系列令人兴奋的功能和改进。开发者可以期待增强的循环语义、改进的工具、优化的垃圾收集等等。专注于保持兼容性和性能,Go 作为一种多才多艺且高效的编程语言继续发展。请关注 2024 年 2 月的正式发布,并探索 Go 1.22 提供的新可能性。Noa28资讯网——每日最新资讯28at.com

Go 1.22 将于 2024 年 2 月发布。Noa28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-65876-0.html提升 Go 编程:Go 1.22 中有哪些新特性?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C/C++语言宏定义函数封装小妙招!

下一篇: 牢记这16个SpringBoot 扩展接口,写出更加漂亮的代码

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • 三星推出Galaxy Tab S9系列平板电脑以及Galaxy Watch6系列智能手表

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板电脑以及三星Galaxy Watch6系列智能手表也同期
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
Top