Protocol buffers 如何在协议缓冲区中设置嵌套消息的默认值?

Protocol buffers 如何在协议缓冲区中设置嵌套消息的默认值?,protocol-buffers,Protocol Buffers,如果我的proto文件包含这样的代码 message Inner { optional int32 someValue = 1; } message Outer { optional Inner innerMember = 2; } 是否可以设置该innerMember的默认值,类似这样 可选内部成员=2[default=defaultValueForInner] 如果是,我应该在defaultvalueforinternal的位置放置什么来初始化它?据我所知,您只能在内部消息

如果我的proto文件包含这样的代码

message Inner {
    optional int32 someValue = 1;
}
message Outer {
    optional Inner innerMember = 2;
}
是否可以设置该innerMember的默认值,类似这样

可选内部成员=2[default=defaultValueForInner]


如果是,我应该在
defaultvalueforinternal
的位置放置什么来初始化它?

据我所知,您只能在内部消息本身内部设置默认值:

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

这意味着如果您在多个位置使用
内部
,则所有位置的默认值都相同。

据我所知,您只能在内部消息本身内设置默认值:

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

这意味着如果从多个位置使用
内部
,则所有位置的默认值都相同。

这是正确的。无法在Protobuf中为消息字段设置默认值。(不过,Cap'n Proto对此表示支持。)(披露:我是proto2和Cap'n Proto的作者。)这是正确的。无法在Protobuf中为消息字段设置默认值。(尽管《宪章》支持它。)(披露:我是《宪章2》和《宪章》的作者。)