我正在使用grpc golang在客户端和服务器应用程序之间进行通信。
以下是协议缓冲区的代码。
我需要在消息数据结构内而不是map [string] string创建一个类型为map [string] interface {}的字段inputVar。
我该如何实现?
预先感谢。
proto3的类型为
但是如果您看一下它的实现,它就是
您必须自己定义可能的消息,方法是使用反射和中间类型。
请参阅示例应用程序
https://github.com/golang/protobuf/issues/60
我写了一篇较长的文章,介绍如何使用
官方文档:https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb
虽然处理起来有些冗长,但协议缓冲区中的" struct"类型可能更接近golang的map [string] interface {}
但是像interface {}一样,将花费一些反射样式的开销来确定实际的存储类型是什么。
例如在此处查看评论:https://github.com/golang/protobuf/issues/370