Golang struct {} {}意思

时间:2017-02-26 14:40:27

标签: go

我正在查看chi包的文档。我看到类似的东西:

https://github.com/pressly/chi/blob/master/_examples/rest/main.go#L154

data := struct {
    *Article
    OmitID interface{} `json:"id,omitempty"` // prevents 'id' from being overridden
}{Article: article}

我该如何解释? 2部分我不完全理解

  • OmitID部分如何阻止设置id
  • {Article: article}部分做了什么?

1 个答案:

答案 0 :(得分:6)

((NearbyUsersAdapter) recyclerView.getAdapter()).getNearbyUsers().get(position).getId() 定义中的第一个{}用于定义该结构的字段或属性。

struct

因此data := struct { *Article OmitID interface{} `json:"id,omitempty"` // prevents 'id' from being overridden } 是一个结构,其字段data*Article具有所谓的类型。

  

{Article:article}部分做了什么?

第二个OmitID用于定义该字段的值。

{}

这部分是定义{Article: article} 字段的值。

  

OmitID部分如何阻止设置id?

在go中,您可以在结构中定义任意数量的字段。 您可以通过调用字段和具有受尊重类型的值来调用它来定义它。例如,如果我有这个结构:

Article

我可以这样称呼它:

type DriverData struct {
    Name     string  `json:"name"`
    Status   bool    `json:"status"`
    Location GeoJson `json:"location"`
}

该字段的其余部分将根据各自的数据类型example := DriverData{Name : "SampleName"}

您可以阅读golang zero values here