gpt4 book ai didi

Golang struct {}{} 含义

转载 作者:IT王子 更新时间:2023-10-29 01:23:51 29 4
gpt4 key购买 nike

我正在查看 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} 部分的作用是什么?

最佳答案

struct 定义中的第一个 {} 用于定义该结构的字段或属性。

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

所以 data 是一个结构,它具有字段 *ArticleOmitID 以及它们的相关类型。

What does the {Article: article} part do?

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

{Article: article}

这部分是定义Article字段的值。

How does the OmitID part prevent id from being set?

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

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

我可以这样调用它:

example := DriverData{Name : "SampleName"}

根据各自的数据类型,字段的其余部分将具有零值

您可以阅读有关 golang 零值的信息 here

关于Golang struct {}{} 含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469833/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com