在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在处理超时时候出现的问题: 问题代码为 package main import( "fmt" "time" ) func main(){ var ch chan string go func() { ch <- "result" }() select { case res := <-ch: fmt.Println(res) return case <-time.After(time.Second * 5): fmt.Println("timeout") } } 错误的原因:var ch chan string没有对ch分配空间,使得一直运行的是case <- time.After(time.Second*5)这个分支。解决方法为添加:ch = make(chan string)或者删除var ch chan string,再添加ch := make(chan string) 思考: var在声明指针、chan、map的时候都要使用make分配一下空间,否则无法使用 实现map的比较: var kl map[string]string kl["string"]="stk" fmt.Println(kl) //出现错误 var kt map[string]string kt = make(map[string]string) kt["string"] = "strin" fmt.Println(kt) //正确
|
请发表评论