2016-08-03 70 views
0

我有這樣一個原:不同版本的原文件

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

如果我現在反序列化的人說與舊版本序列化唯一的區別是iPhone()將永遠是錯誤的?因此,假設手機將被設置爲所有新人,我可以通過hasPhone是真/假來區分它是否是舊/新版本的proto?

+0

爲什麼你引用我中期的句子? :)它的開始是「所以假設電話將爲所有新人設置......」。 – user1985273

+0

對不起。這是一個漫長的夜晚:) –

回答

2

是的,這是正確的。

您也可以使用getPhone()並檢查字符串是否爲空,因爲空字符串是字符串類型字段的默認值。