Go 1.21发布!

这篇具有很好参考价值的文章主要介绍了Go 1.21发布!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文在这里。

由Eli Bendersky, on behalf of the Go team 发布于 8 August 2023

Go团队今天非常高兴地发布了Go 1.21版本,你可以通过访问下载页面来获取。

Go 1.21充满了新功能和改进。以下是一些值得注意的变化;完整的列表,请参阅发布说明。

工具改进

  • 我们在1.20版本预览的基于配置文件的优化(PGO)特性现在已经可以广泛使用了!如果在主包的目录中存在名为default.pgo的文件,go命令将使用它来启用PGO构建。更多详情请查看PGO文档。我们已经在一系列Go程序上测量了PGO的影响,看到了2-7%的性能提升。
  • go工具现在支持向后和向前的语言兼容性。

语言变化

  • 新的内置函数:min,max和clear。
  • 对泛型函数的类型推断进行了多项改进。规范中对类型推断的描述已经被扩展和明确化。
  • 在Go的未来版本中,我们计划解决Go编程中最常见的问题之一:循环变量捕获。Go 1.21带来了这个特性的预览,你可以在你的代码中使用环境变量来启用它。更多详情请查看LoopvarExperiment wiki页面。

标准库添加

  • 新的log/slog包,用于结构化日志。
  • 新的slices包,用于对任何元素类型的切片进行常见操作。这包括比sort包更快、更符合人体工程学的排序函数。
  • 新的maps包,用于对任何键或元素类型的映射进行常见操作。
  • 新的cmp包,带有新的有序值比较工具。

性能改进

除了启用PGO时的性能改进外,

  • Go编译器本身已经在1.21版本中启用了PGO,因此它构建Go程序的速度提高了2-4%,具体取决于主机架构。
  • 由于对垃圾收集器的调优,一些应用可能会看到尾部延迟降低了高达40%。
  • 使用runtime/trace收集跟踪现在在amd64和arm64上的CPU成本大大降低。

新的WASI端口:

  • Go 1.21添加了一个实验性的WebAssembly系统接口(WASI)的端口,预览1(GOOS=wasip1,GOARCH=wasm)。
  • 为了便于编写更通用的WebAssembly(Wasm)代码,编译器还支持了一个新的用于从Wasm主机导入函数的指令:go:wasmimport

感谢所有通过编写代码、提交错误、分享反馈和测试发布候选版本的人对这个版本的贡献。你们的努力帮助确保Go 1.21尽可能稳定。如果你发现任何问题,请提交一个问题。

享受Go 1.21吧!


Go 1.21发布!

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
author: mengbin
blog: mengbin
github: mengbin92
cnblogs: 恋水无意文章来源地址https://www.toymoban.com/news/detail-637807.html


到了这里,关于Go 1.21发布!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go 1.21新增的 slices 包详解(三)

    Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片。 定义如下: 返回 x 中的最大值,如果 x 为空,则 panic。对于浮点数 E, 如果有元素为 NaN,结果就是 NaN。简单示例如下: 定义如下: 返回 x 中的最大值,使用 cmp 函数来比较元素,如果 x 为空,则

    2024年02月12日
    浏览(23)
  • 使用go mod tidy命令出现go.mod file indicates go 1.21, but maximum supported version is 1.19,如何解决

    使用git拉取代码Golang代码到本地后,利用VS Code打开项目后,看到go.mod报红,现象如下图所示:` 这个问题是当前使用的go版本与git clone拉取下来的项目的go.mod所用的go版本不一致导致的: 在项目中打开一个terminal,查看当前安装的go版本是否与go.mod的第二行的声明一致:如下图

    2024年02月06日
    浏览(34)
  • 力扣日记1.21-【回溯算法篇】77. 组合

    日期:2023.1.21 参考:代码随想录、力扣 终于结束二叉树了!听说回溯篇也是个大头,不知道这一篇得持续多久了…… 题目描述 难度:中等 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n = 4, k = 2 输出:

    2024年01月22日
    浏览(34)
  • 新版发布|Mendix 10.6发布:AI,看这里

    我们以一个丰盛的MTS发布高调地结束了2023年。2023是人工智能成为热门话题的一年,我们很高兴分享两种利用(一代)人工智能的功能,它们不仅是演示软件,而且真正提供了价值:MendixChat和改进的逻辑编辑器。 但还有很多,比如使页面样式化变得轻而易举的视觉设计属性、

    2024年02月20日
    浏览(31)
  • Docker Desktop 4.15 正式发布,这里是新功能

    Docker Desktop 4.15现在可用于所有平台:Linux、Windows 和 macOS。它附带 Docker Compose v2.13.0、Containerd v1.6.10 和 Docker Hub Tool v0.4.5 2 VirtioFS 正式发布 新的快速搜索功能 在任何 IDE 中使用开发环境 扩展下的新构建选项卡 能够使用 containerd 运行 Wasm 容器 新的 docker extension share CLI 早在 3 月

    2024年02月02日
    浏览(32)
  • 【Vue3】Vite打包发布错误若干问题解决方案,新手遇到的问题都在这里。

    npm run build 在vite.config.js 中加入下面的代码 vite.config.js 完整代码

    2024年02月11日
    浏览(35)
  • Java 21即将发布,探索Java 21新特性和改进

    Java 21是 Java 17之后的下一个 LTS版本。虚拟线程在 Java 21中将成为正式功能。Java 21 有望将会成为继 java8 之后又一个流行的 Java 版本。 Java 21将在 2023 年 9 月 19 日发布 3.1 正式功能 虚拟线程 (Virtual Threads) 顺序集合(Sequenced Collections) 记录类型的模式(Record Patterns) switch 的模

    2024年02月07日
    浏览(36)
  • JDK21发布了!面试官:来,谈下jdk21的新特性!

    JDK21 计划23年9月19日正式发布,尽管一直以来都是“版随意出,换 8 算我输”,但这么多年这么多版本的折腾,若是之前的 LTS 版本JDK17你还觉得不错,那 JDK21还是有必要关注一下,因为会有一批重要更新发布到生产环境中,特别是被众人期待已久的虚拟线程,纵然说这东西我

    2024年02月07日
    浏览(40)
  • go学习part21 Redis

    300_尚硅谷_Redis的基本介绍和原理示意_哔哩哔哩_bilibili Redis 命令 | 菜鸟教程 (runoob.com)     Redis的基本使用: 说明:Redis安装好后,默认有16个数据库,初始默认使用0号库,编号是0...15 1.添加key-val [set] 2.查看当前redis的所有key [keys *] 3..获取key对应的值.[get key] 4.切换redis 数据库[se

    2024年02月10日
    浏览(25)
  • 一、Go基础知识21、GOPROXY设置镜像、go编码规范

    在设置 Go 语言的代理时,可以使用 GOPROXY 环境变量来指定代理服务器的地址。 Go 官方提供的中国国内镜像: https://goproxy.cn。 以下是如何设置 Goproxy 中国国内镜像的步骤: 在终端或命令提示符中执行以下命令: 如果你使用的是 Windows 平台的命令提示符,可以使用以下命令:

    2024年01月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包