尝试在 Protobuf 中创建二维数组时获取预期的顶级语句(例如 "message")
Getting Expected top-level statement (e.g. "message") when trying to create 2D array in Protobuf
我正在尝试在 .proto 文件中创建一个二维数组,如下所示:
message Foo {
repeated int32 items = 1;
}
repeated Foo items= 1;
但是在生成 .pb.go 文件时,收到此行的错误 repeated Foo items= 1;
Getting Expected top-level statement (e.g. "message")
有没有人遇到过这个错误?
请告诉我如何解决这个问题?
顶层不能有字段,所有内容都应包含在消息或枚举中。所以在你的情况下你应该有这样的东西:
message Foo {
repeated int32 items = 1;
}
message Bar {
repeated Foo items = 1;
}
然后您就可以通过执行以下操作来设置项目:
&pb.Bar {
Items: []*pb.Foo {
{ Items: []int32{1, 2, 3, 4, 5, 6} },
{ Items: []int32{7, 8, 9, 10, 11, 12} },
},
}
其中 pb 是您在 proto 文件中定义的包的导入名称。例如:
原型:
option go_package = "example.com/m/proto";
前往:
import pb "example.com/m/proto"
我正在尝试在 .proto 文件中创建一个二维数组,如下所示:
message Foo {
repeated int32 items = 1;
}
repeated Foo items= 1;
但是在生成 .pb.go 文件时,收到此行的错误 repeated Foo items= 1;
Getting Expected top-level statement (e.g. "message")
有没有人遇到过这个错误?
请告诉我如何解决这个问题?
顶层不能有字段,所有内容都应包含在消息或枚举中。所以在你的情况下你应该有这样的东西:
message Foo {
repeated int32 items = 1;
}
message Bar {
repeated Foo items = 1;
}
然后您就可以通过执行以下操作来设置项目:
&pb.Bar {
Items: []*pb.Foo {
{ Items: []int32{1, 2, 3, 4, 5, 6} },
{ Items: []int32{7, 8, 9, 10, 11, 12} },
},
}
其中 pb 是您在 proto 文件中定义的包的导入名称。例如:
原型:
option go_package = "example.com/m/proto";
前往:
import pb "example.com/m/proto"