Go 1.20正式发布,最后一个支持Win7、Win8等旧系统的版本

出品 | OSC开源社区(ID:oschina2013)继 Go 1.19 发布六个月之后,Go 1.20 现已正式发布,该版本的大部分更改都集中在在工具链、运行时和库的实现中。下载地址:https://go.dev/dl/Go 1.20 是最后一个可以在任何版本的 Windows 7、8、Server 2008 和 Server 2012 上运行的版本,Go 1.21 将至少需要 Windows 10 或 Server 2016。且 Go 1.20 是最后一个支持在 macOS 10.13 High Sierra 或 10.14 Mojave 上运行的版本,Go 1.21 将需要 macOS 10.15 Catalina 或更高版本。此外,Go 1.20 还添加了对 RISC-V 上的 FreeBSD (GOOS=freebsd, GOARCH=riscv64) 的实验性支持。Go 1.20 在语法方面包含了 4 项变化:
  • Go 1.7 增加了从 slice (切片)到数组指针转换的功能,Go 1.20 对该功能进行了扩展 —— 可直接从 slice 转换成数组。比如给定一个 slicex[4]byte(x) 可以写成 *(*[4]byte)(x)

  • 标准库 unsafe 包定义了 3 个新函数:SliceData,String  StringData。与 Go 1.17 的 Slice 一起,这些函数现在提供了构建和解构 slice 和字符串值的完整功能,而不依赖于它们的精确表示。

  • Go 语言规范进行了更新,定义结构体变量的值每次只比较一个字段,字段比较的顺序和字段在结构体里定义的顺序保持一致。一旦某个字段的值比较出现不一致,就会马上停止比较。

  • Comparable 类型(例如普通接口 ordinary interfaces)现在可以满足 comparable 约束,即便类型实参 (type argument) 不是严格可比较类型。

一些其他更新内容还包括:
  • $GOROOT/pkg 目录不再存储标准存档的预编译包存档,以减少 Go 发行版的大小。

  • go 命令现在定义架构功能 build flags,如 amd64.V2,以允许根据特定 CPU 架构功能的存在或不存在来选择包实现文件。这对于 x86_64 微架构特性级别的工作来说是个好消息。

  • go build 和 go install 以及其他与构建相关的命令现在支持 “-cover” flag,用于启用带有 code coverage instrumentation 的构建。

  • 由于在垃圾收集器上的工作,内存开销减少和 CPU 性能提高高达 2%。

  • 对 Profile Guided Optimizations (PGO) 的预览支持。

  • 在 Linux 上,linker 现在在链接时为 glibc 或 musl 选择动态解释器。

  • 一个新的 crypto/ecdh 包,为 NIST curves 和 Curve25519 上的 Elliptic Curve Diffie-Hellman 密钥交换提供明确支持。

更多详情可查看官方公告:https://go.dev/doc/go1.20


END



有奖问答

聊聊天空计算,跨云存储与Xline

参与提问即有机会获得《Rust 实战》书籍一本

聊聊天空计算,跨云存储与Xline




这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦

相关推荐

  • 官宣:计算中间件 Apache Linkis 正式毕业成为 Apache 顶级项目
  • Fish Shell计划采用Rust重写
  • OpenAI、ChatGPT、AI绘画
  • 作为数据科学家,我并没有选择 Python,而是从 R 到了 Julia!
  • 离大谱!开源要成“非法”的了?
  • 初识 Turbopack
  • 最近有不少朋友离职了
  • 超越云的可持续计算
  • 被炒上天了的AI,嗨得太离谱!
  • 乔布斯离开后的苹果 | 历史上的今天
  • “我把 ChatGPT 和苹果的 Siri 组了个队,发现无敌了!”
  • 美团面试:MySQL 自增主键一定是连续的吗?
  • “被朱茵捉奸,劈腿莫文蔚,与挚爱相恋欠债七千万”:如今60岁的他,怎么活成这样?
  • 看了《狂飙》大结局后,才发现我们对广东一无所知...
  • 常用统计检验Python代码!
  • 用Gzip数据压缩方式优化redis大对象缓存
  • 百度出手,国产版 ChatGPT 要来了
  • 数据库隔离级别及MVCC
  • 和毕玄见面,聊聊 FinOps 从概念到落地 | QCon 北京倒计时 3 天
  • 如何解决Prometheus的存储容量问题?