登录
首页 >  Golang >  Go问答

定义除了名称和类型之外的字段的Go语言语句

来源:stackoverflow

时间:2024-02-05 23:48:26 344浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《定义除了名称和类型之外的字段的Go语言语句》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我看到这样的结构定义:

type Resource struct {
    Attrs []Attribute `parquet:",list"`
    ServiceName      string  `parquet:",snappy,dict"`
    Cluster          *string `parquet:",snappy,optional,dict"`
    ....
}

我理解字段定义的前两部分(名称、类型)。但最后一部分是什么意思呢?喜欢

parquet:",snappy,dict"


正确答案


反引号中的文本描述了可以通过反射访问的 Go 结构标记(请参阅 reflect.StructTag 了解详细信息)。

这些标签通常由编组/解组为不同格式的代码使用 - 通常描述字段应如何解码或编码。 encoding/json 的结构标记的使用对于 MarshalUnmarshal 函数。

您的示例似乎与 github.com/segmentio/parquet 有关-go 包。它有一些简短的有关包如何解释结构标签的文档 .

特别是:

  • snappy 使用 Snappy 压缩对列进行编码
  • dict 使用 Parquet 启用 Dict 编码文件
  • 可选表示Parquet列是可选的。
  • list 表示应使用 parquet LIST 逻辑类型。

今天关于《定义除了名称和类型之外的字段的Go语言语句》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>