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;
}