c++ - 如何将所需的 protobuf 字段设置为其默认值?
问题描述
在 protobuf 2 / C++ 中,如何将必需的消息字段设置为其默认值?
解决方案
您可以使用该Clear
方法将字段重置为默认值:
message Msg {
required int32 i = 1 [default = 10];
};
Msg msg;
msg.set_i(123);
msg.Clear(); // Set the field to default value: 10.
// Another way:
msg.clear_i();
但是,这将清除必填字段,即msg.has_i() == false
。如果要设置它,还请执行以下操作:
msg.Clear();
msg.set_i(msg.i());
推荐阅读
- python - Dataflow fails due to ERROR: Could not find a version that satisfies the requirement wheel (from versions: none)
- html - 固定列间隙css
- dbt - dbt:访问源 schema.yml 中指定的源列的测试
- selenium - Python Selenium XPath 没有从网站获取 url
- docker - NGINX proxy_pass 不起作用;端口不在重定向中处理
- android - Android SDK 认为我的硬盘上没有剩余空间
- node.js - 前端到后端的请求(react、nodejs)不通过 nginx。如何让 nginx 拦截流量?
- python-3.x - 为什么日志记录模块在 CLI 中有效,但在 Crontab 中无效?
- c# - 如何根据运行时类型进行调度?
- javascript - Vue.js 3 - “加载模块脚本失败:服务器以非 JavaScript MIME 类型“text/html”响应