Pro3 | Java | Python | Go |
---|---|---|---|
double | double | float | float64 |
float | float | float | float32 |
int32 | int | int | int32 |
int64 | long | int/long[3] | int64 |
uint32 | int[1] | int/long[3] | uint32 |
uint64 | long[1] | int/long[3] | uint64 |
sint32 | int | int | int32 |
sint64 | long | int/long[3] | int64 |
fixed32 | int[1] | int/long[3] | uint32 |
fixed64 | long[1] | int/long[3] | uint64 |
sfixed32 | int | int | int32 |
sfixed64 | long | int/long[3] | int64 |
bool | boolean | bool | bool |
string | String | str/unicode[4] | string |
bytes | byteSring | str | []byte |
//声明proto的版本,并且必须是第一行,否则认为是proto2版本
syntax = "proto3";
//最终通过编译器生成的.go文件的包名
package proto_file;
//使用message定义Person结构体,按照上面的类型映射一一映射
message Person{
string no = 1;
string name = 2;
int32 age = 3;
int32 sex = 4;
enum PhoneType{
HOME = 0;
WORK = 1;
MOBILE = 2;
}
message PhoneNumber{
string number = 1;
PhoneType type = 2;
}
repeated PhoneNumber phones = 5;
repeated string address = 6;}
}