go基础语法50问,来看看你的go基础合格了吗?( 八 )


func main() {var data *bytevar in interface{}fmt.Println(data, data =https://www.huyubaike.com/biancheng/= nil) // truefmt.Println(in, in == nil) // truein = datafmt.Println(in, in == nil) // false // data 值为 nil,但 in 值不为 nil}// 正确示例func main() {doIt := func(arg int) interface{} {var result *struct{} = nilif arg > 0 {result = &struct{}{}} else {return nil // 明确指明返回 nil}return result}if res := doIt(-1); res != nil {fmt.Println("Good result: ", res)} else {fmt.Println("Bad result: ", res) // Bad result: <nil>}}50.select可以用于什么常用于goroutine的完美退出 。
golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作每个case语句里必须是一个IO操作,确切的说,应该是一个面向channel的IO操作 。
参考资料:公众号:晨梦思雨

经验总结扩展阅读