1 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
這是因為您正在從頻道中讀取兩次。
首先嘗試將通道數(shù)據(jù)分配給變量。
package main
import "time"
import "fmt"
func main() {
? ? // For our example we'll select across two channels.
? ? c1 := make(chan string)
? ? c2 := make(chan string)
? ? // Each channel will receive a value after some amount
? ? // of time, to simulate e.g. blocking RPC operations
? ? // executing in concurrent goroutines.
? ? go func() {
? ? ? ? time.Sleep(1 * time.Second)
? ? ? ? c1 <- "one"
? ? }()
? ? go func() {
? ? ? ? time.Sleep(2 * time.Second)
? ? ? ? c2 <- "two"
? ? }()
? ? // We'll use `select` to await both of these values
? ? // simultaneously, printing each one as it arrives.
? ? for i := 0; i < 2; i++ {
? ? ? ? select {
? ? ? ? case msg1 := <-c1:
? ? ? ? ? ? fmt.Println("received", msg1)
? ? ? ? case msg2 := <-c2:
? ? ? ? ? ? fmt.Println("received", msg2)
? ? ? ? }
? ? }
}
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報