比较复杂的 channelmap 读取channel
package main
import (
"fmt"
"time"
)
func main() {
things := make(map[chan int](string))
var data (chan int)
go func() {
data = func(map[chan int](string)) chan int {
c := make(chan int)
things[c] = "1234"
return c
}(things)
<-data
}()
time.Sleep(time.Second * 1)
go func() {
for th := range things {
select {
case th <- 789:
fmt.Println("hehe")
default:
fmt.Println("default")
}
}
}()
time.Sleep(time.Second * 3)
}
当 <-data 没有注释掉时候走 case th <- 789:
否则走 default分支

浙公网安备 33010602011771号