如何初始化包含 Google 自动生成的库切片的结构



我正在尝试根据此处生成的自动生成的包制作Google Analytics Go库

我已经进行身份验证,获得了帐户摘要等,因此在我尝试构建报告请求之前一切都很好。

我正在尝试初始化一个具有以下内容的结构报告请求:

type ReportRequest struct {
    DateRanges []*DateRange `json:"dateRanges,omitempty"`
    ...etc
}

如何创建一个包装此结构的函数,以便我可以传入值? 咨询日期范围结构 这似乎很简单,但我收到有关没有将切片指针传递给 DateRange 的消息,我不知道如何构造。

我试过这个:

func makeRequest(
    start, end string) *ga.GetReportsRequest {
    daterangep := &ga.DateRange{StartDate: start, EndDate: end}
    requests := ga.ReportRequest{}
    requests.DateRanges = daterangep

但是得到一个编译器错误:

cannot use daterangep (type *analyticsreporting.DateRange) as type []*analyticsreporting.DateRange in assignment

是否可以发送 JSON? 我看到一些我不知道是否可以使用的MarshalJSON函数,以及对象中的json声明,但我更喜欢能够使用Go对象。

谁能指出我做错了什么?

要初始化切片,您可以使用文本:

daterangep := []*ga.DateRange{{StartDate: start, EndDate: end}}

您可以使用make

daterangep := make([]*ga.DateRange, 1)
daterangep[0] = &ga.DateRange{StartDate: start, EndDate: end}

或者你可以声明它,然后使用append

var daterangep []*ga.DateRange
daterangep = append(daterangep, &ga.DateRange{StartDate: start, EndDate: end})