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

时间:2012-07-13 18:05:51

标签: go

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

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

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

我的问题不是关于mgo驱动程序的功能,
但关于这种奇怪的<name> <type> <string_literal>语法。

我在Go规格上找不到任何内容,我也不知道如何谷歌这个。

1 个答案:

答案 0 :(得分:45)

Struct typeslanguage specification部分对此进行了解释:

  

字段声明后面可以跟一个可选的字符串文字   标记,它成为相应字段声明中所有字段的属性。标签通过a可见   reflection interface但是会​​被忽略。

// 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"
}