【golang微服务】protobuf中oneof、WrapValue和FieldMask的利用

手机软件开发 2024-9-12 12:15:27 86 0 来自 中国
protobuf中利用oneof、WrapValue和FieldMask

本文先容了在Go语言中怎样利用oneof字段以及怎样通过利用google/protobuf/wrappers.proto中界说的范例区分默认值和没有传值;末了演示了Go语言中借助fieldmask-utils库利用google/protobuf/field_mask.proto实现部分更新的方法。
oneof

假如你有一条包罗多个字段的消息,并且最多同时设置此中一个字段,那么你可以通过利用oneof来实现并节省内存。
oneof字段雷同于常规字段,只不外oneof中的全部字段共享内存,而且最多可以同时设置一个字段。设置此中的任何成员都会自动清除全部其他成员。
可以在oneof中添加除了map字段和repeated字段外的任何范例的字段。
protobuf 界说

假设我的博客体系支持为读者朋侪们发送博客更新的关照信息,体系支持通过邮件和短信两个方式发送关照。但每一次只答应利用一种方式发送关照。
在这个场景下我们就可以利用oneof字段来界说关照的方式——notice_way。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 20:21, Processed in 0.142030 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表