本文共 357 字,大约阅读时间需要 1 分钟。
在使用protobuf的编译器进行编译proto文件时,可能会遇到以下错误提示:
“Required fields are not allowed in proto3”
这是因为protobuf2与protobuf3的语法存在显著差异。虽然proto3采用了更现代化的语法规则,但在实际编写message时,仍需注意以下几点:
在proto文件中,确保开启proto3的支持:
syntax = "proto3";
需要注意的是,proto3仅支持repeated字段的修饰方式。如果在message中使用required或optional字段修饰,编译将报错。因此,建议将这些字段修饰符去掉:
message Student { string name = 1;
}
这样可以避免错误,并确保兼容性。
转载地址:http://ygxfk.baihongyu.com/