Я пытаюсь преобразовать внутренний тип в тип, сгенерированный protobuf, и не могу преобразовать массив. Я новичок, поэтому не знаю всех методов, которые могут помочь. Но это моя попытка. При запуске этого кода я получаю
паника: ошибка выполнения: неверный адрес памяти или разыменование нулевого указателя [сигнал SIGSEGV: код нарушения сегментации = 0x1 addr = 0x8 pc = 0x86c724]
наряду с большим количеством других байтовых данных. Мне интересно, как лучше всего преобразовать внутренние структуры в protobufs. Я думаю, что у меня больше всего проблем с кодом, сгенерированным protobuf, который является указателем.
Протоопределения
message GameHistory {
message Game {
int64 gameId = 1;
}
repeated Game matches = 1;
string username = 2;
}
message GetRequest {
string username = 1;
}
message GetGameResponse {
GameHistory gameHistory = 1;
}
Перейти код
// 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,
},
}
}