Golang中的奇怪类型定义语法(name,then type,then string literal)

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

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

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

我的问题不在于mgo驱动程序的功能,
但是关于这个奇怪的< name> <类型> < string_literal>句法。

我在Go规格上找不到任何东西,我也不知道如何google这个。

这在language specificationStruct types部分解释:

A field declaration may be followed by an optional string literal
tag, which becomes an attribute for all the fields in the corresponding field declaration. The tags are made visible through a
07002 but are otherwise ignored.

// 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"
}
翻译自:https://stackoverflow.com/questions/11475917/strange-type-definition-syntax-in-golang-name-then-type-then-string-literal

转载注明原文:Golang中的奇怪类型定义语法(name,then type,then string literal)