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

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

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

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

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

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

语言的变化

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

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

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

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

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

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

工具

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

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

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

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

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

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

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

运行时

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

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

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

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

编译器

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

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

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

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

链接器

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

核心库

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

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

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

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

对库的次要更改

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

结论

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

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

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

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

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

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

标签:
  • 热门焦点
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 超闭合精工铰链 彻底消灭缝隙 三星Galaxy Z Flip5与Galaxy Z Fold5发布

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。三星新一代折叠屏手机采用超闭合精工铰链,让折叠后的缝隙不再可见。同时,配合处
  • 到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • iQOO Neo8 Pro评测:旗舰双芯加持 最强性能游戏旗舰

    【Techweb评测】去年10月,iQOO推出了一款Neo7手机,该机搭载了联发科天玑9000+,配备独显芯片Pro+,带来了同价位段最佳的游戏体验,一经上市便受到了诸多用
Top