日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Go 語言史詩級更新-循環(huán)Bug修復(fù)

來源: 責(zé)編: 時間:2023-09-25 10:38:09 313觀看
導(dǎo)讀背景前兩天 Golang 的官方博客更新了一篇文章:Fixing For Loops in Go 1.22看這個標(biāo)題的就是修復(fù)了 Go 循環(huán)的 bug,這真的是史詩級的更新;我身邊接觸到的大部分 Go 開發(fā)者都犯過這樣的錯誤,包括我自己,所以前兩年我也寫過

背景

前兩天 Golang 的官方博客更新了一篇文章:Fixing For Loops in Go 1.22RNn28資訊網(wǎng)——每日最新資訊28at.com

看這個標(biāo)題的就是修復(fù)了 Go 循環(huán)的 bug,這真的是史詩級的更新;我身邊接觸到的大部分 Go 開發(fā)者都犯過這樣的錯誤,包括我自己,所以前兩年我也寫過類似的博客:簡單的 for 循環(huán)也會踩的坑RNn28資訊網(wǎng)——每日最新資訊28at.com

先來簡單回顧下使用使用 for 循環(huán)會碰到的問題:RNn28資訊網(wǎng)——每日最新資訊28at.com

list := []*Demo{{"a"}, {"b"}}  for _, v := range list {   go func() {    fmt.Println("name="+v.Name)   }()  }    type Demo struct {   Name string  }

預(yù)期的結(jié)果應(yīng)該是打印 a,b,但實際打印的卻是b,b。RNn28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片RNn28資訊網(wǎng)——每日最新資訊28at.com

Let's Encrypt: CAA Rechecking bug類似的問題連 mozilla 團隊也沒能幸免,所以也確實是一個非常常見的問題,這樣的寫法符合大部分的開發(fā)者的直覺,畢竟其他語言這么使用也沒有問題。RNn28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)然在現(xiàn)階段要解決也很簡單,要么就是在使用之前先復(fù)制一次,或者使用閉包傳參:RNn28資訊網(wǎng)——每日最新資訊28at.com

// 復(fù)制 list := []*Demo{{"a"}, {"b"}}   for _, v := range list {    temp:=v    go func() {     fmt.Println("name="+temp.Name)    }()   } // 閉包 list := []*Demo{{"a"}, {"b"}}   for _, v := range list {    go func(temp *Demo) {     fmt.Println("name="+temp.Name)    }(v)   }

還好官方也意識到了這個問題:RNn28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片RNn28資訊網(wǎng)——每日最新資訊28at.com

所以在 1.22 中我們可以不用再寫這個 ????v:=v這個多余的復(fù)制語句了,也不會出現(xiàn)上面的問題。RNn28資訊網(wǎng)——每日最新資訊28at.com

我們在 1.21 中可以使用環(huán)境變量預(yù)覽這個特性:RNn28資訊網(wǎng)——每日最新資訊28at.com

? GOEXPERIMENT=loopvar go testname=bname=a

在 1.22 發(fā)布后建議大家都可以升級了,將這種惡心的 bug 扼殺在搖籃里。RNn28資訊網(wǎng)——每日最新資訊28at.com

1.22 后帶來了一個好消息是今后少了一道面試題,壞消息是又新增了一個 1.22 版本帶來了哪些變化的面試題

本文鏈接:http://www.www897cc.com/showinfo-26-11246-0.htmlGo 語言史詩級更新-循環(huán)Bug修復(fù)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 不可變模式篇:非常抓狂,這特么到底是哪里不對?

下一篇: 高并發(fā)下就該使用非阻塞式方式接口調(diào)用提高系統(tǒng)整體性能

標(biāo)簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 徐汇区| 将乐县| 昌乐县| 忻州市| 松桃| 顺义区| 靖远县| 临武县| 建德市| 南江县| 四川省| 金川县| 鄂伦春自治旗| 搜索| 奎屯市| 武山县| 东乡族自治县| 定陶县| 海原县| 醴陵市| 红原县| 浦城县| 翁牛特旗| 贡觉县| 京山县| 余庆县| 浙江省| 怀远县| 湘潭县| 新宾| 广汉市| 彩票| 盐边县| 乾安县| 白玉县| 雅江县| 通化县| 图木舒克市| 原阳县| 吐鲁番市| 瑞丽市|