我需要声明一条消息,其中一个字节指定一个默认值。
我在.proto
文件中试过:
message Message {
required bytes test = 1 [default = 0];
}
但是我得到了这个错误Expected String.
,因为它需要一个字符串作为默认值。有没有一种方法可以将bytes
类型视为C中的一个字节(char
,uint8_t
,...)?
我还试图指定一个字符串作为默认值([default = '0']
),但我得到的是指定值的相应ASCII转换,而不是我需要的真实的值最好是十六进制值。
编辑:
我是这样做的:
message Message {
required bytes test = 1 [(nanopb).max_size = 1, (nanopb).fixed_length = true, default = "\xFF"];
}
我不知道这是正确的方法还是只是一种变通方法,但它确实有效。
1条答案
按热度按时间0md85ypi1#
默认值=“\xFF”
是的,使用十六进制转义码是二进制数据的正确方法。
在Google的protobuf文档中并没有很好的记录,但是AFAIK这是所有protobuf实现解释默认值的方式。