Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 是一个空字符串`[]字节(";)`序列化为`\0` 我们的代码库是GO和C++。我是C++程序员,所以我可以遵循Go,但是我不太懂。_String_Go_Embedded_I2c - Fatal编程技术网

String 是一个空字符串`[]字节(";)`序列化为`\0` 我们的代码库是GO和C++。我是C++程序员,所以我可以遵循Go,但是我不太懂。

String 是一个空字符串`[]字节(";)`序列化为`\0` 我们的代码库是GO和C++。我是C++程序员,所以我可以遵循Go,但是我不太懂。,string,go,embedded,i2c,String,Go,Embedded,I2c,我们是一家嵌入式商店,Go的人正在序列化一个字符串并将其发送到I2C缓冲区。I2C事务中似乎附加了一个空Go字符串作为\0,而不是“nothing” 我在Go文档中看到的所有内容都只描述了如何测试它(即str==”或len(str)>0),但似乎没有描述它是如何序列化的 作为C++程序员,> 0 有意义,因为它是字符串的null终止符,或者甚至只是代码> null < /C> >,这在存储变量中是有意义的。有人能确认或拒绝吗?Go语言没有指定如何序列化Go值。Go标准库中的编码器以不同的方式序列

我们是一家嵌入式商店,Go的人正在序列化一个字符串并将其发送到I2C缓冲区。I2C事务中似乎附加了一个空Go字符串作为
\0
,而不是“nothing”

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


作为C++程序员,> 0 有意义,因为它是字符串的null终止符,或者甚至只是代码> null < /C> >,这在存储变量中是有意义的。有人能确认或拒绝吗?

Go语言没有指定如何序列化Go值。Go标准库中的编码器以不同的方式序列化空字符串。编码器省略空字符串。编码器将空字符串写入为“”(除非被告知忽略空字符串)


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

我很欣赏这个链接,但它没有说明空字符串的值是如何序列化的。还有,我不明白为什么这次投票被否决了。请在评论中提供反馈,这样我可以改进这个问题。@velkor请用这个贴出答案,这样我可以给你打勾。