登录
首页 >  Golang >  Go教程

网络接收字符串匹配失败,如何解决 switch case 无法匹配问题?

时间:2024-11-29 20:51:50 197浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《网络接收字符串匹配失败,如何解决 switch case 无法匹配问题?》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

网络接收字符串匹配失败,如何解决 switch case 无法匹配问题?

switch case 匹配不到网络接收的字符串?

代码中接收网络消息并匹配相应操作的 switch case,然而匹配失败。虽已确定收到的字符串为 "tunnelok",但 switch case 却无法匹配。

解决方案

将 action 变量的 trim 方法从 trim 改为 trimspace:

action := strings.TrimSpace(contentList[0])

原因推测

收到的字符串中存在不可见字符导致匹配失败,例如 ascii 码 0 的字符。收到的字符串长度为 2048,前 2048 个字节为零值,将这些字节转换为字符串后,不可见字符会被添加到字符串中。

根治方法

除了 trimspace 解决方案外,还可以通过以下方法根治问题:

  1. 在创建 read 切片时,使用 var 或 []byte{} 而不是 make([]byte, 2048)。
  2. 在读取 readtmp 数据后,将 read 切片截断到 readtmp 长度。

今天关于《网络接收字符串匹配失败,如何解决 switch case 无法匹配问题?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>