目前,我在项目中使用protobuf版本2。到目前为止,所有的信息都很有效;然而,我在尝试使用“map”关键字时遇到了一个障碍。
需要映射背后的TLDR用法是,我想将一些JSON键/值对传递给服务器进行查找,并将可能的数据日志传递给服务器(使用JSON消息接口)。
我目前正在使用文档页面上推荐的向后兼容方法:https://developers.google.com/protocol-buffers/docs/proto#maps
我想了解的是,为什么我的消息的以下声明(使用映射)无法编译?我正在使用protoc编译器的以下veriosn:“#protoc--版本=
message MapFieldEntry {
optional string key = 1;
optional string value = 2;
}
message Lookup {
repeated MapFieldEntry map_field = 1;
map<string, string> test_map = 2;
}
我收到的错误如下(考虑到地图功能的文档,这些错误对我来说没有意义):
Expected "required", "optional", or "repeated".
Expected field name.
我尝试添加语法=“proto2”;在顶部,但我仍然得到错误。
编辑:作为注释;我遇到的问题是关于查找消息的第二个参数。第一个论点是我目前正在使用的变通方法。
我发现其他人在git上有类似的问题:https://github.com/google/protobuf/issues/799
回答是:
仅从v3.0.0开始支持maps语法。文档中的“proto2”指的是语法版本,而不是protobuf发布版本。v3.0.0支持proto2语法和proto3语法,而v2.6.1仅支持proto2语法。对于所有用户,建议使用v3.0.0-beta-1而不是v2.6.1。
所以看起来要解决你的问题,你应该使用协议3,而不是2.6.1。
并将您的语法=协议2
保持在文件的顶部,以准确地说这是您使用的协议2语法。
你能试着告诉我这是否有效吗?这是一个有趣的问题,因为官方文件没有提到它。
假设我想创建一个字典,例如,一个或多个车型的汽车品牌。 在ES6中,我似乎可以用两种不同的方式做到这一点。 1.创建对象映射: 代码: 2.创建ES6 Map实例: 代码: 以上两种方法的主要区别和优缺点是什么?
问题内容: 我正在使用此功能将URL复制到剪贴板: 在桌面浏览器上一切正常,但在iOS设备上无法正常运行,在iOS设备上我的函数成功返回,但是数据根本没有复制到剪贴板。是什么原因造成的,我该如何解决这个问题? 问题答案: 更新!iOS> = 10 看起来像是在选择范围和一些小技巧的帮助下,可以直接复制到iOS(> = 10)Safari上的剪贴板。我在iPhone 5C iOS 10.3.3和iP
我正在使用这个函数将一个URL复制到剪贴板: 在桌面浏览器上一切正常,但在iOS设备上就不行了,在iOS设备上我的函数成功返回,但数据根本没有复制到剪贴板上。是什么原因造成的?我该如何解决这个问题?
需要使用剪贴板操作将字符串值粘贴到WebElement
我一直在看MDN上的新ES6文档,我找不到地图对象的实际用途,因为普通对象无法工作。有没有人有地图的使用案例,并解释为什么一个对象在这种情况下不能工作?