select {
case 通道的讀寫
}
哪個case可以執行就執行哪個。
如果有多個case可以執行,隨機選擇一個case執行。
如果沒有case可以執行,有defaute執行defaulte,如果沒有defaute進入阻塞
package main import ( "fmt" "time" ) func main() { /* 分支語句:if,switch,select select 語句類似於 switch 語句, 但是select會隨機執行一個可運行的case。 如果沒有case可運行,它將阻塞,直到有case可運行。 */ ch1 := make(chan int) ch2 := make(chan int) go func() { time.Sleep(3*time.Second) ch2 <- 200 }() go func() { time.Sleep(3*time.Second) ch1 <- 100 }() select { case num1 := <-ch1: fmt.Println("ch1中取數據。。", num1) case num2 := <-ch2: fmt.Println("ch2中取數據。。", num2) } }