是否将空字符串"[]byte( " " )"序列化为"\0"



我们的代码基础是Go和C++。我是一名C++程序员,所以我可以遵循Go,但我不太理解它。

我们是一个嵌入式商店,Go人员正在序列化一个字符串,并将其发送到I2C缓冲区。看起来一个空的Go字符串被附加到I2C事务作为,而不是"0";什么都没有";。

我在Go文档中看到的所有内容都只描述了如何测试它(即str == ""len(str) > 0(,但似乎没有描述它是如何序列化的。

作为C++程序员,是有意义的,因为它是字符串的空终止符,甚至是简单的NULL,存储在变量中也是有意义的。有人能证实或否认这一点吗?

Go语言没有指定Go值的序列化方式。Go标准库中的编码器以不同的方式序列化空字符串。料滴编码器省略空字符串。JSON编码器将空字符串写为"空"(除非被告知要省略空字符串(。

内存中的字符串值没有null终止符。

最新更新