我正在查看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}
Run Code Online (Sandbox Code Playgroud)
我怎么解释这个?2部分我不太了解
OmitID部件如何防止id被设置?{Article: article}部分做什么?所述第一{}中struct定义为定义结构的字段或属性.
data := struct {
*Article
OmitID interface{} `json:"id,omitempty"` // prevents 'id' from being overridden
}
Run Code Online (Sandbox Code Playgroud)
所以这data是一个具有字段*Article和OmitID受尊重类型的结构.
{Article:article}部分做了什么?
第二个{}是定义该字段的值.
{Article: article}
Run Code Online (Sandbox Code Playgroud)
这部分是定义Article字段的价值.
OmitID部分如何防止id被设置?
在go中,您可以在结构中定义任意数量的字段.您可以通过调用字段和具有受尊重类型的值来调用它来定义它.例如,如果我有这个结构:
type DriverData struct {
Name string `json:"name"`
Status bool `json:"status"`
Location GeoJson `json:"location"`
}
Run Code Online (Sandbox Code Playgroud)
我可以这样称呼它:
example := DriverData{Name : "SampleName"}
Run Code Online (Sandbox Code Playgroud)
该字段的其余部分将zero values基于其各自的数据类型.
你可以在这里阅读golangZero Values
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |