1.定义字符串一般不使用string,使用bytes来代替string。若定义为string,proto底层还是会把string->bytes,虽然不会影响结果,但是在一定程度上还是会浪费效率。
2.其他的数据类型,基本数据,列表,映射表
3.为成员变量设置值 test.proto
message Error {
int32 errorCode = 1;
bytes errorMsg = 2;
}
message User {
bytes name = 1;
int32 age = 2;
enum Sex {
MAN = 0;
WOMAN = 1;
}
Sex sex = 3;
}
message GetUserList {
Error error = 1;
repeated User list = 2;// repeated表示列表
}
main.cc
int main() {
GetUserList p;
Error* err = p.mutable_error();
err->set_errorcode(1);
err->set_errormsg("xxx");
User* user = p.add_list();
user->set_age(10);
user->set_name("zhangsan");
user->set_sex(User::MAN);
cout << p.list_size() << endl;
return 0;
}