Я пытаюсь преобразовать внутренний тип в тип, сгенерированный protobuf, и не могу получить массив для преобразования. Я новичок, поэтому не знаю всех методов, которые могли бы помочь. Но это моя попытка. При запуске этого кода я получаю
паника: ошибка времени выполнения: неверный адрес памяти или разыменование нулевого указателя
[сигнал SIGSEGV: код нарушения сегментации = 0x1 addr = 0x8 pc = 0x86c724]
вместе со многими другими байтовыми данными. Мне интересно, как лучше всего конвертировать внутренние структуры в protobufs. Я думаю, что у меня больше всего проблем с созданным протобуфом кодом, являющимся указателями.
Прото Определения
message GameHistory {
message Game {
int64 gameId = 1;
}
repeated Game matches = 1;
string username = 2;
}
message GetRequest {
string username = 1;
}
message GetGameResponse {
GameHistory gameHistory = 1;
}
Go Code
// GameHistory model
type GameHistory struct {
Game []struct {
GameID int64 `json:"gameId"`
} `json:"games"`
UserName string `json:"username"`
}
func constructGameHistoryResponse(gameHistory models.GameHistory) *pb.GetGameResponse {
games := make([]*pb.GameHistory_Game, len(gameHistory.Games))
for i := range matchHistory.Matches {
games[i].GameID = gameHistory.Games[i].GameID
}
res := &pb.GetGameResponse{
GameHistory: &pb.GameHistory{
Games: games,
},
}
}