go1.21 循環(huán)用臨時變量不再共享

效果:

  • 普通for循環(huán)
package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    const N = 3
    wg.Add(N)

    for i := 0; i < N; i++ {
        go func() {
            fmt.Println(i)
            wg.Done()
        }()
    }
    
    wg.Wait()
}

可能得輸出:

2
0
1

對比:使用1.18版本的go運行滨攻,輸出如下:

3
3
3
  • for...rang循環(huán):
package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    const N = 3
    wg.Add(N)

    for i := range []int{1, 2, 3} {
        go func() {
            fmt.Println(i)
            wg.Done()
        }()
    }

    wg.Wait()
}

可能得輸出:

2
1
0

對比:使用1.18版本的go運行,輸出如下:

2
2
2

至于為啥普通for循環(huán)輸出3饶唤,而for...range循環(huán)輸出2徐伐。這是因為普通for循環(huán)在最后一次循環(huán)后還會進行一次i++操作,i的值就變成3了募狂,當判斷循環(huán)條件時不滿足退出循環(huán)办素,但goroutine引用的i也就是3了。

官方文檔:

Release Notes

文檔鏈接:https://go.dev/doc/go1.21

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末祸穷,一起剝皮案震驚了整個濱河市性穿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雷滚,老刑警劉巖需曾,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祈远,居然都是意外死亡呆万,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門车份,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谋减,“玉大人,你說我怎么就攤上這事扫沼〕龅” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵缎除,是天一觀的道長严就。 經(jīng)常有香客問我,道長器罐,這世上最難降的妖魔是什么梢为? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上抖誉,老公的妹妹穿的比我還像新娘。我一直安慰自己衰倦,他們只是感情好袒炉,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著樊零,像睡著了一般我磁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驻襟,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天夺艰,我揣著相機與錄音,去河邊找鬼沉衣。 笑死郁副,一個胖子當著我的面吹牛,可吹牛的內容都是我干的豌习。 我是一名探鬼主播存谎,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肥隆!你這毒婦竟也來了既荚?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤栋艳,失蹤者是張志新(化名)和其女友劉穎恰聘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吸占,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡晴叨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旬昭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙螟。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖问拘,靈堂內的尸體忽然破棺而出遍略,到底是詐尸還是另有隱情,我是刑警寧澤骤坐,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布绪杏,位于F島的核電站,受9級特大地震影響纽绍,放射性物質發(fā)生泄漏猎莲。R本人自食惡果不足惜椎瘟,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一辟汰、第九天 我趴在偏房一處隱蔽的房頂上張望被冒。 院中可真熱鬧,春花似錦跪腹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至皆怕,卻和暖如春毅舆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愈腾。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工憋活, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虱黄。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓悦即,卻偏偏與公主長得像,于是被迫代替她去往敵國和親礁鲁。 傳聞我的和親對象是個殘疾皇子盐欺,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容