如何解决是一个空字符串`[] byte“”`序列为`\ 0`
我们的代码库是Go和C ++。我是C ++程序员,所以我可以遵循Go,但是我不太了解。
我们是一家嵌入式商店,围棋专家正在对字符串进行序列化并将其发送到I2C缓冲区。看来空的Go字符串以\0
的形式附加到I2C事务,而不是“无”。
我在Go文档中看到的所有内容仅描述了如何对其进行测试(即str == ""
或len(str) > 0
),而似乎没有描述其序列化方式。
作为C ++程序员,\0
是有意义的,因为它是字符串的空终止符,甚至只是NULL
的空终止符,将它们存储在变量中也很有意义。有人可以确认还是拒绝?
解决方法
Go语言没有指定如何序列化Go值。 Go标准库中的编码器以不同方式对空字符串进行序列化。 gob编码器省略了空字符串。 JSON编码器将空字符串写为“”(除非被告知省略空字符串)。
内存字符串中的值没有空终止符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。