Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何定义通用原型消息_Go_Protocol Buffers_Proto - Fatal编程技术网

Go 如何定义通用原型消息

Go 如何定义通用原型消息,go,protocol-buffers,proto,Go,Protocol Buffers,Proto,我正在尝试使用proto消息格式在大查询中注册事件。目前,我为不同的事件创建了不同的消息结构,从而创建了不同的表。问题是,如果我想在同一事件中添加更多数据,我需要创建一个新表,因为模式已更改(我不确定是否有其他方法不创建新表)。所以对于这个例子,我想创建一个通用的消息,可以使用 目前有一种可能性是使用类似的东西 message GenericAnalytics{ string event_name = 1; repeated string data = 2; } 我将使用不同的

我正在尝试使用proto消息格式在大查询中注册事件。目前,我为不同的事件创建了不同的消息结构,从而创建了不同的表。问题是,如果我想在同一事件中添加更多数据,我需要创建一个新表,因为模式已更改(我不确定是否有其他方法不创建新表)。所以对于这个例子,我想创建一个通用的消息,可以使用

目前有一种可能性是使用类似的东西

message GenericAnalytics{
    string event_name = 1;
    repeated string data = 2;
}
我将使用不同的
event\u name
将行添加到同一个表中


我可以将此结构用于所有事件,但问题是它将以字符串类型存储。有什么更好的方法吗?

protobuf中不存在模板意义上的“泛型”;您可以查看“oneof”、“Any”,或者在最坏的情况下使用“bytes”而不是“string”(因为protobuf数据是二进制的,除非您使用的是JSON层)@marcGravel ok将查看它们。Thaks:D模板意义上的“泛型”在protobuf中不存在;您可以查看“oneof”、“Any”,或者在最坏的情况下使用“bytes”而不是“string”(因为protobuf数据是二进制的,除非您使用的是JSON层)@marcGravel ok将查看它们。萨克斯:D