当前位置: 首页 > 面试题库 >

Go结构字段的第三个参数是什么?

弘康安
2023-03-14
问题内容
type Config struct {
    CommitIndex uint64 `json:"commitIndex"`
    // TODO decide what we need to store in peer struct
    Peers []*Peer `json:"peers"`
}

我知道前两列是什么,但是什么json:"commitIndex"


问题答案:

它称为struct标记,可以reflect在运行时使用包对其进行解析

来自https://golang.org/ref/spec#Struct_types:

字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。

这些标记通过反射接口可见,并参与结构的类型标识,但否则将被忽略。

一些使用反射的包(例如)jsonxml使用标签来更好地处理特殊情况。



 类似资料:
  • 问题内容: package main 结构中无名字段的目的是什么? 是否可以像使用命名字段一样访问这些字段? 问题答案: 请参阅“ 在Go中嵌入 ”:您在结构中嵌入了一个匿名字段:通常与嵌入式结构一起使用,而不是像这样的基本类型。该类型没有要显示的“提升字段”。 字段或方法在一个结构匿名字段的被称为 促进 如果是一个合法的选择器,它表示字段或方法。 提升的字段的作用类似于结构的普通字段,只是它们不

  • 问题内容: 什么是参数: 如果我这样做: 并具有两个Localizable.strings版本(英语和西班牙语),每个版本是否都需要输入: 英语难道不是多余的吗? 问题答案: 注释字符串被应用程序忽略。它用于翻译者的利益,可在您的应用程序中找到的键的上下文用法中添加含义。 例如,键在给定语言中的取值可能不同,具体取决于该短语在该语言中需要使用的正式或非正式程度(“ Whats up World”,

  • 你正在以你的方式构建个人流程,它让你以有限的阻碍快速起步。拥有良好的起步流程,以及培养一种尽管去做的能力,就是创造力的基础。创造力是一种流动性和放松的心态。如果你的起步充满阻碍和沮丧,那么很难进入这个流程。学习“点击”你的大脑,使其进入具有创造力的、松散的 Hack 模式,可以帮助你使用创造力解决问题,并提高生产力。 如果你做的是垃圾,那就没有意义了。首先,是的,显然,你所做的绝大多数都是垃圾,但

  • 问题内容: 基本上,(我知道)迭代a的字段值的唯一方法是这样的: 我想知道,是否有更好,更通用的实现方法,所以我不需要单独列出每个参数,或者有没有更好的方法遍历结构? 我试图浏览一下包装,但是碰到了墙,因为我不确定一旦取回该怎么办。 谢谢! 问题答案: 使用检索字段的后,您可以通过调用从中获取接口值。然后,所述接口值表示字段的值。 您可能知道,没有函数可以将字段的值转换为具体类型,因为您可能没有泛

  • 我试图从关系中的第三个表中显示一个字段,在检查了这里的帖子和文档后,我仍然卡住了。我有3个模型都以某种方式相关。我在这里找到了类似的帖子,但我仍然没有得到它的工作。如果我在文档的某个地方错过了这个,我很抱歉,但是我已经读了很多,尝试了很多。我现在猜得太多了,所以我需要帮助。 tutorsession自动从教师表中获取行,但不从findall上的模型设置的用户表中获取行。 我想显示用户表中的用户名。

  • 问题内容: 我正在从syscall到Go中的某些WinApi获得结果。我可以轻松地从C代码映射简单的结构,但是如何处理如下的C结构? 如果在Go中定义了所有可能的类型 在将这个Go结构作为参数进行系统调用之后,我已经将它存储在内存中并且可以像往常一样在Go中访问它,但是(在上面的代码中)仅始终填充(在上面的代码中)之后的第一个字段,其他两个字段始终为空。我知道这是C语言中的预期行为,因为一次只能有