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

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

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

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

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

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

语言的变化

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

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

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

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

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

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

工具

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

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

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

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

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

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

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

运行时

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

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

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

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

编译器

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

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

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

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

链接器

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

核心库

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

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

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

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

对库的次要更改

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

结论

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

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

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

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

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

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

标签:
  • 热门焦点
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 网红炒股不为了赚钱,那就是耍流氓!

    来源:首席商业评论6月26日高调宣布入市,网络名嘴大v胡锡进居然进军了股市。在一次财经媒体峰会上,几个财经圈媒体大佬就“胡锡进炒股是否知道认真报道”展开讨论。有
  • 苹果公司要求三星和LG Display生产「无边框」OLED iPhone显示屏

    据 The Elec 报道,苹果已要求其供应商为未来的 iPhone 型号开发「无边框」OLED 显示面板。苹果显然已要求三星和 LG Display 开发新的 OLED 显示面
  • iQOO 11S或7月上市:搭载“鸡血版”骁龙8Gen2 史上最强5G Soc

    去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,iQOO 11不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞屏,同时在快充
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
  • 电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会为了更好地让参展观众真正感受到智能家居的绝妙之处,海尔智家的程传岭先生同样介绍了展会上海尔智家的模拟500平大平层,还原生活空间沉浸式体验。程传
Top