亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言中閉包共享變量問題示例分析

發布時間:2021-04-12 11:36:40 來源:億速云 閱讀:272 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關go語言中閉包共享變量問題示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

直接看代碼和注釋:

package mainimport (
    "fmt"
    "time")func main() {
    // 錯誤示例(打印出的結果是5個6)
    fmt.Println("closure buggy example...")
    for i := 1; i <= 5; i++ {
        // 每個goroutine共享一個變量,goroutine還沒開始的時候,i已經變成了6
        go func() {
            fmt.Println(i)
        }()
    }
    time.Sleep(1 * time.Second)


    // 正確示例1:
    fmt.Println("normal example...")
    for i := 1; i <= 5; i++ {
        go func(i int) {   // 使用局部變量
            fmt.Println(i)
        }(i)
    }
    time.Sleep(1 * time.Second)

    // 正確示例2:
    fmt.Println("normal example 2...")
    for i := 1; i <= 5; i++ {
        i := i  // 為每個閉包創建一個變量
        go func() {
            fmt.Println(i)
        }()
    }
    time.Sleep(1 * time.Second)}

運行得到的結果如下:

closure buggy example...66666normal example...52134normal example 2...52134

原因和解決方法見代碼注釋。第一個例子是錯誤示例,第二、三個例子是正確示例。

關于“go語言中閉包共享變量問題示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

炉霍县| 杭锦后旗| 平远县| 凤城市| 民乐县| 江门市| 珲春市| 体育| 内丘县| 绩溪县| 永清县| 阿鲁科尔沁旗| 弋阳县| 龙泉市| 扎兰屯市| 汕头市| 陕西省| 南靖县| 怀柔区| 延安市| 天水市| 汝城县| 吴川市| 梅州市| 惠东县| 潢川县| 永仁县| 苏尼特右旗| 渝中区| 台南市| 黔西县| 济源市| 珲春市| 阜城县| 萨迦县| 大新县| 革吉县| 三门峡市| 昔阳县| 无极县| 宜兰市|