快看! Go 1.22 对for循环进行了两个大更新

2024年 2月 22日 44.3k 0

Go 1.22 版本于 2024 年 2 月 6 日正式向世界宣告了版本的发布 。

我们可以从官网下载1.22版本进行体验,或者从 Go Playground上进行体验最新语法

图片图片

值得注意的是在语言层面上,这个版本对 for 循环进行了两处更新:

  • • for循环的每次迭代都会定义新变量,而不再是共享一个变量
  • • 支持对整数范围进行循环迭代

今天将以案例的方式对比下最新版本 for 循环的两个更新点。

🧐 Let's Go!

循环不再共享循环变量

🔔 for在循环语义层面的坑

Go1.22之前版本for 循环声明的变量只创建一次,并在每次迭代中进行更新,这会导致遍历时访问value时实际上都是访问的同一个地址的值。

相信不少小伙伴都遇到过,特别是在初学Go的时候!

Go1.22之前版本

我们用官博文章中那个例子,稍微改进如下,并使用1.21版本运行

package main

import "fmt"

func main() {
done := make(chan bool)

values := []string{"xiao", "xu", "code"}
for _, v := range values {
go func() {
fmt.Println(v)
done

相关文章

如何删除WordPress中的所有评论
检查WordPress服务器磁盘使用情况的7种简便方法(查找大文件和数据)
如何更改WordPress常量FS_METHOD
如何为区块编辑器、Elementor等构建WordPress文章模板
如何彻底地删除WordPress主题及相关内容
如何使用WordPress搭建一个内网

发布评论