AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

來源: 責(zé)編: 時間:2023-09-25 10:38:09 345觀看
導(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.229eX28資訊網(wǎng)——每日最新資訊28at.com

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

先來簡單回顧下使用使用 for 循環(huán)會碰到的問題:9eX28資訊網(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。9eX28資訊網(wǎng)——每日最新資訊28at.com

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

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

當(dāng)然在現(xiàn)階段要解決也很簡單,要么就是在使用之前先復(fù)制一次,或者使用閉包傳參:9eX28資訊網(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)   }

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

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

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

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

? GOEXPERIMENT=loopvar go testname=bname=a

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

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

本文鏈接:http://www.tebozhan.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)簽:
  • 熱門焦點
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價比榜和好評榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機潮已經(jīng)過去,最明顯的肯定就是大內(nèi)存和存儲的機型了,另外部分中端機也取消了屏幕塑料支架
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協(xié)調(diào)和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現(xiàn)手段有以下幾種方式:Object 類下
  • 掘力計劃第 20 期:Flutter 混合開發(fā)的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發(fā)實戰(zhàn)詳解》作者,掘金優(yōu)秀作者,Github GSY 系列目負(fù)責(zé)人戀貓的小郭分享了Flutter 混合開發(fā)的混亂之治。Flutter 基于自研的 Skia 引擎
  • JavaScript學(xué)習(xí) -AES加密算法

    引言在當(dāng)今數(shù)字化時代,前端應(yīng)用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進行加密和解密操作。然而,這樣的操作在網(wǎng)絡(luò)傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業(yè)人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經(jīng)知道了,就當(dāng)作復(fù)習(xí)一下,古人云,溫故而知新嘛。現(xiàn)在,我們就開始今
  • 一個注解實現(xiàn)接口冪等,這樣才優(yōu)雅!

    場景碼猿慢病云管理系統(tǒng)中其實高并發(fā)的場景不是很多,沒有必要每個接口都去考慮并發(fā)高的場景,比如添加住院患者的這個接口,具體的業(yè)務(wù)代碼就不貼了,業(yè)務(wù)偽代碼如下:圖片上述代碼有
  • 微軟邀請 Microsoft 365 商業(yè)用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業(yè)用戶,開放 Clipchamp 應(yīng)用,邀請用戶通過該應(yīng)用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據(jù)官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 2022爆款:ROG魔霸6 冰川散熱系統(tǒng)持續(xù)護航

    喜逢開學(xué)季,各大商家開始推出自己的新產(chǎn)品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現(xiàn)在的
Top