关于golang中的结构体

这些天看aws的golang sdk中结构体中有

_ struct{} `type:"structure"`

不知道 下划线 _ 是什么意思,注意不是tag

// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MultipartUpload
type MultipartUpload struct {
    _ struct{} `type:"structure"`

    // Date and time at which the multipart upload was initiated.
    Initiated *time.Time `type:"timestamp" timestampFormat:"iso8601"`

    // Identifies who initiated the multipart upload.
    Initiator *Initiator `type:"structure"`

    // Key of the object for which the multipart upload was initiated.
    Key *string `min:"1" type:"string"`

    Owner *Owner `type:"structure"`

    // The class of storage used to store the object.
    StorageClass *string `type:"string" enum:"StorageClass"`

    // Upload ID that identifies the multipart upload.
    UploadId *string `type:"string"`
}
阅读 2.6k
2 个回答

这个叫struct tag

Go offers struct tags which are discoverable via reflection. These enjoy a wide range of use in the standard library in the JSON/XML and other encoding packages.

The community welcomed them and has built ORMs, further encodings, flag parsers and much more around them since, especially for these tasks, single-sourcing is beneficial for data structures.

相当于给struct中的字段添加了tag属性,可以通过reflect包来获取struct中字段的属性

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题