我正在查看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}
部分做了什么? 答案 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