登录
首页 >  Golang >  Go问答

golang map里面的 net.Conn 类型的变量如何判断类型?

来源:SegmentFault

时间:2023-01-27 19:49:24 320浏览 收藏

本篇文章给大家分享《golang map里面的 net.Conn 类型的变量如何判断类型?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我有一个 []map[string]interface{} 类型的变量,里面装的是一个客户端列表,每个客户端的有个元素 client["conn"] ,这个变量存的是个 net.Conn 类型的变量,现在我要循环这个客户端列表,给每个 conn 发消息,请问该怎么判断类型呢,我现在这样写报错:

外层 for 循环
......
if reflect.TypeOf(cconn{}) == *net.TCPConn {
    cconn.Write([]byte("同志们好"))
}
......

我现在如果直接 Write ,代码会报错,请教一下各位大神,这里该怎么写呢?

正确答案

if conn,ok := m["conn"].(*net.TCPConn); ok {
   // do somehting with conn
}

其实就是类型断言语法,你看effective go 里的Interface conversions and type assertions

到这里,我们也就讲完了《golang map里面的 net.Conn 类型的变量如何判断类型?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表