Golang 中奇怪的类型定义语法(名称,然后类型,然后字符串文字)

2024-01-19

我一直在尝试找出如何使用 mgo(Go 的 MongoDB 驱动程序),我遇到了这个结构声明:

type Something struct {
    Id bson.ObjectId "_id,omitempty"
    Name string
}

我不太明白第一个元素(Id)的语法。我知道它被声明为类型bson.ObjectId,但是字符串文字在那里做什么呢?

我的问题不是关于 mgo 驱动程序的功能,
但关于这个奇怪的<name> <type> <string_literal> syntax.

我在 Go 规范上找不到任何内容,而且我也不知道如何用 google 搜索它。


它的解释在结构类型 https://golang.org/ref/spec#Struct_types的部分语言规范 http://golang.org/ref/spec:

字段声明后可以跟一个可选的字符串文字tag,它成为相应字段声明中所有字段的属性。标签通过反射接口 https://golang.org/pkg/reflect/#StructTag但会被忽略。

// A struct corresponding to the TimeStamp protocol buffer.
// The tag strings define the protocol buffer field numbers.
struct {
    microsec  uint64 "field 1"
    serverIP6 uint64 "field 2"
    process   string "field 3"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang 中奇怪的类型定义语法(名称,然后类型,然后字符串文字) 的相关文章

随机推荐