抖音面試題

SmileChiT發表於2024-02-25

麻煩大家幫忙回答以下問題,下面程式碼的結果應該是 3 1 2 或者 3 2 1。這是為什麼呢?我原來以為是排程協程的順序不確定,但是一定先輸出 3。不知道哪位大佬麻煩講解一下。

一. 抖音面試題

ch := make(chan int, 10)
for i := 1; i <= 3; i++ {
go func(i int) {
ch <- i
}(i)
}

for i := 0; i < 3; i++ {
    fmt.Println(<-ch) // 3 1 2
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章