如何判断 golang 中 map 中的 net.conn 类型变量?
在你提供 []map[string]interface{} 类型的变量中,每个元素 client[“conn”] 都存储了一个 net.conn 类型,这个问题的目的是判断如何正确判断其类型。
为了进行类型判断,可以使用反射。但是,你当前编写的代码行 if reflect.typeof(cconn{}) == *net.tcpconn 存在错误。正确的类型判断方式应使用类型断言:
if conn, ok := m["conn"].(*net.TCPConn); ok { // do something with conn}
登录后复制
类型断言语法 “x, ok := y.(t)” 用于将变量或接口值 “y” 断言为类型 “t”。如果断言成功,”x” 被赋予断言后的值,”ok” 被设置为 true。否则,”x” 被赋予零值,”ok” 被设置为 false。
立即学习“go语言免费学习笔记(深入)”;
在提供的代码片段中,它将客户端映射中的 “conn” 元素断言为 *net.tcpconn 类型。如果断言成功(即客户端具有 tcp 连接),则可以对 conn 执行操作。否则,如果断言失败(即客户端不具有 tcp 连接),则不会执行任何操作。
以上就是Golang 中如何判断 Map 中的 net.Conn 类型变量?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2315836.html