go - 如何为谷歌自动生成的库初始化一个包含 slice 的结构

标签 go struct google-analytics-api object-slicing

我正在尝试根据自动生成的包生成 Google Analytics Go 库 here

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

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

type ReportRequest struct {

    DateRanges []*DateRange `json:"dateRanges,omitempty"`

    ...etc
}

我怎样才能创建一个包装这个结构的函数,以便我可以传递值?咨询DateRange struct 这看起来很简单,但我收到有关未将 slice 指针传递给 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 对象。

谁能指出我做错了什么?

最佳答案

要初始化 slice ,您可以使用 literal :

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})

关于go - 如何为谷歌自动生成的库初始化一个包含 slice 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349748/

相关文章:

arrays - 在 Golang 中,如何将循环的结果添加到未知大小的动态数组中?

objective-c - CGRect制作替代品

google-analytics - 如何调试 Google Analytics 跟踪错误(_gaq.push 返回 '3')

php - Google REST-ful 调用 + Guzzle : Setting Authorization Token

go - 需要更新版本

golang 从接口(interface)获取值{}

c - 使用 typedef 和结构理解 C 代码

c - 如何使用结构体

google-analytics - 谷歌分析,从 API 获取注解

go - 包含嵌入的结构 slice 的结构