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

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

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

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

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

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

语言的变化

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

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

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

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

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

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

工具

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

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

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

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

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

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

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

运行时

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

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

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

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

编译器

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

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

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

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

链接器

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

核心库

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

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

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

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

对库的次要更改

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

结论

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

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

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

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

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

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

标签:
  • 热门焦点
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页“充值中心”入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾“低价”口号。而过去与他们错位竞争的拼多多,靠
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
Top