不同版本的原型文件
Different versions of proto files
我有一个这样的原型:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
现在我必须向它添加另一个字段,所以它看起来像这样:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
optional string phone = 4;
}
如果我现在反序列化使用旧版本序列化的 Persons,唯一的区别是 hasPhone() 将始终为 false 吗?因此,假设将为所有新人设置 phone 我实际上可以区分它是否是 hasPhone 的原型 old/new 版本 true/false?
是的,没错。
您还可以使用 getPhone()
并检查字符串是否为空,因为空字符串是字符串类型字段的默认值。
我有一个这样的原型:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
现在我必须向它添加另一个字段,所以它看起来像这样:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
optional string phone = 4;
}
如果我现在反序列化使用旧版本序列化的 Persons,唯一的区别是 hasPhone() 将始终为 false 吗?因此,假设将为所有新人设置 phone 我实际上可以区分它是否是 hasPhone 的原型 old/new 版本 true/false?
是的,没错。
您还可以使用 getPhone()
并检查字符串是否为空,因为空字符串是字符串类型字段的默认值。