2015-12-07 48 views
0

如果我的原文件中包含這樣如何在Protocol Buffers中設置嵌套消息的默認值?

message Inner { 
    optional int32 someValue = 1; 
} 
message Outer { 
    optional Inner innerMember = 2; 
} 

代碼是可以設置innerMember的默認值,這樣的事情?

optional Inner innerMember = 2 [default = defaultValueForInner];

如果有,我應該把在那裏是defaultValueForInner初始化它的地方嗎?

回答

0

據我所知,你只能設置內部消息本身內的默認值:

message Inner { 
    optional int32 someValue = 1 [default = 123]; 
} 
message Outer { 
    optional Inner innerMember = 2; 
} 

這意味着,如果你使用Inner來自多個地方,默認將是他們都是一樣的。

+0

這是正確的。無法爲Protobuf中的消息字段設置默認值。 (Cap'n Proto支持它)(披露:我是proto2和Cap'n Proto的作者。) –