Go 结构/标签语法

Go Struct / Tag Syntax

我正在寻找以下语法的解释:

type GetBucketTaggingInput struct {
    _ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`

    // The name of the bucket for which to get the tagging information.
    //
    // Bucket is a required field
    Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
}

具体来说,这一行:

_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`

我知道标签是元数据,但在此上下文中如何使用元数据? 另外,我不明白:

_ struct{}

关于 Bucket 变量,我不确定除了必填字段之外是否还需要元数据。

顺便说一下,这是来自 AWS Go SDK。

谢谢!

AWS SDK 使用 _ struct{} 指定结构的元数据。

_ 就是 blank identifier.

struct{} 是一个没有字段的匿名结构类型。此值的大小为零。

locationName:"GetBucketTaggingRequest" type:"structure"field tag.

SDK 使用 reflect 包查找字段 _ 的标签。