Java 为什么protobuf在golang中使用byte[]表示字节,而在其他语言中使用string/ByteString表示字节?
如此处所述 protobuf在golang中使用byte[]表示字节,但在其他语言中使用string/ByteString表示字节,为什么会有差异 正如@Volker所解释的,字符串不适合保存任意[]字节 那么为什么pb在除go之外的所有其他语言中使用string/ByteString来表示字节呢?Java 为什么protobuf在golang中使用byte[]表示字节,而在其他语言中使用string/ByteString表示字节?,java,go,protocol-buffers,Java,Go,Protocol Buffers,如此处所述 protobuf在golang中使用byte[]表示字节,但在其他语言中使用string/ByteString表示字节,为什么会有差异 正如@Volker所解释的,字符串不适合保存任意[]字节 那么为什么pb在除go之外的所有其他语言中使用string/ByteString来表示字节呢? []字节对于字节流来说是自然的 Go中的字符串不是字节流,而是不可变字符串 Go中的字符串应该是UTF-8编码的,至少这是对它们进行测距的假设,在字符串中使用非UTF-8字节流是可能的,但有点不雅观
- []字节对于字节流来说是自然的
- Go中的字符串不是字节流,而是不可变字符串
- Go中的字符串应该是UTF-8编码的,至少这是对它们进行测距的假设,在字符串中使用非UTF-8字节流是可能的,但有点不雅观
- Go中没有ByteString类型。实际上有:[]字节