當我運行此代碼時,我不明白為什么在打印X后它不打印其他情況。我希望我應該看到X打印出來三秒鐘,然后最后從server2package mainfunc server1(ch chan string) { time.Sleep(6 * time.Second) ch <- "from server1"}func server2(ch chan string) { time.Sleep(3 * time.Second) ch <- "from server2"}func main() { output1 := make(chan string) output2 := make(chan string) go server1(output1) go server2(output2) select { case s1 := <-output1: fmt.Println(s1) case s2 := <-output2: fmt.Println(s2) default: fmt.Println(“X”) }}
1 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
func main() {
output1 := make(chan string)
output2 := make(chan string)
go server1(output1)
go server2(output2)
for {
select {
case s1 := <-output1:
fmt.Println(s1)
case s2 := <-output2:
fmt.Println(s2)
default: // todo: return
fmt.Println("X")
}
}
}
- 1 回答
- 0 關注
- 71 瀏覽
添加回答
舉報
0/150
提交
取消