【问题标题】:How to initialize imported mesage from protobuf as array in Golang如何将来自protobuf的导入消息初始化为Golang中的数组
【发布时间】:2020-08-05 06:52:23
【问题描述】:

我有一个protobuf文件如下:

message Lesson {
  int64 UserId = 1;
  int32 CourseId = 2;
  int32 LessonId = 3;
  LessonStatus Status = 4;
  google.protobuf.Timestamp DateSubmitted = 5;
  
  message Question {
    string QuestionId = 1;
    string StudentAnswer = 2;
    QuestionStatus Status = 3;
    string SupComment = 4;

  }

  repeated Question Questions = 6;

}

}

protobuf 文件被导入为api

创建Lesson_Question 的单个对象很简单,使用&api.Lesson_Question{},但我正在尝试创建一个问题片段。我已经在谷歌上搜索了一段时间,但没有找到任何关于此的文档。

各种组合我都试过了,比如:

  • questions := []*api.Lesson_Question
  • questions := []&api.Lesson_Question
  • questions := &[]api.Lesson_Question
  • questions := *[]api.Lesson_Question
  • questions := []api.Lesson_Question

但都报错。

任何帮助或指点将不胜感激!

【问题讨论】:

    标签: go struct protocol-buffers


    【解决方案1】:

    如果您使用 go-grpc,Questions 成员将生成为[]*api.Lesson_Question。声明一个文字:

    empty_questions:=[]*api.Lesson_Question{}
    questions:=[]*api.Lesson_Question{&api.Lesson_Question{QuestionId:"q1"},
      &api.Lesson_Question{QuestionId:"q2"}}
    

    【讨论】:

    • 谢谢!正是我想要的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多