Documentation ¶
Overview ¶
包gstructs提供了用于获取结构体信息的函数。 md5:ff6813ae5e3453ba
Index ¶
- func FieldMap(in FieldMapInput) (map[string]X结构_Field, error)
- func ParseTag(tag string) map[string]string
- func TagMapField(object interface{}, priority []string) (map[string]X结构_Field, error)
- func TagMapName(pointer interface{}, priority []string) (map[string]string, error)
- type FieldMapInput
- type FieldsInput
- type RecursiveOption
- type X结构_Field
- func (f *X结构_Field) IsEmbedded() bool
- func (f *X结构_Field) IsEmpty() bool
- func (f *X结构_Field) IsExported() bool
- func (f *X结构_Field) Kind() reflect.Kind
- func (f *X结构_Field) Name() string
- func (f *X结构_Field) OriginalKind() reflect.Kind
- func (f *X结构_Field) OriginalValue() reflect.Value
- func (f *X结构_Field) Tag(key string) string
- func (f *X结构_Field) TagAdditional() string
- func (f *X结构_Field) TagDefault() string
- func (f *X结构_Field) TagDescription() string
- func (f *X结构_Field) TagExample() string
- func (f *X结构_Field) TagIn() string
- func (f *X结构_Field) TagJsonName() string
- func (f *X结构_Field) TagLookup(key string) (value string, ok bool)
- func (f *X结构_Field) TagMap() map[string]string
- func (f *X结构_Field) TagParam() string
- func (f *X结构_Field) TagPriorityName() string
- func (f *X结构_Field) TagStr() string
- func (f *X结构_Field) TagSummary() string
- func (f *X结构_Field) TagValid() string
- func (f *X结构_Field) Type() X结构_Type
- func (f *X结构_Field) X是否为Nil(traceSource ...bool) bool
- type X结构_Type
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FieldMap ¶
func FieldMap(in FieldMapInput) (map[string]X结构_Field, error)
FieldMap 从 `pointer` 获取并返回结构体字段,作为 map[name/tag]Field。
参数 `pointer` 应为 struct 或 *struct 类型。
参数 `priority` 指定了用于检索的优先级标签数组,从高到低。如果为空(`nil`),则返回 map[name]Field,其中 `name` 为属性名称。
参数 `recursive` 指定是否递归检索嵌入的结构体中的字段。
注意,它仅从结构体中检索首字母大写的导出属性。 md5:deef4c5e31602259
func ParseTag ¶
ParseTag 将标签字符串解析为映射。 例如: ParseTag(`v:"required" p:"id" d:"1"`)) => map[v:required p:id d:1]。 md5:967d381052c3a2d8
func TagMapField ¶
TagMapField 从 `pointer` 中获取结构体标签作为 map[tag]Field,然后返回它。 参数 `object` 应该是 struct 类型、*struct 类型、struct 切片或 []*struct 类型之一。
注意: 1. 它只会从结构体中检索首字母大写的导出属性。 2. 需要提供参数 `priority`,只检索具有给定标签的字段。 3. 如果一个字段没有指定标签,它将使用其字段名称作为结果映射的键。 md5:ba865b4214b27332
Types ¶
type FieldMapInput ¶
type FieldMapInput struct { // Pointer 应该是 struct 类型的指针/*指向结构体的指针类型*/。 // TODO 这个属性名称不合适,可能会引起混淆。 // md5:7115141b84d46b4a Pointer interface{} // PriorityTagArray 用于指定优先级标签数组,按从高到低的顺序检索。 // 如果传入 `nil`,则返回 map[name]Field,其中 `name` 是属性名称。 // md5:454af14097a1e0a3 PriorityTagArray []string // RecursiveOption 定义了如果属性是一个嵌入的结构体,如何递归地检索字段。默认情况下为 RecursiveOptionNone。 // md5:ad0b9ef1d1f1f1e5 RecursiveOption RecursiveOption }
FieldMapInput是FieldMap函数的输入参数结构体类型。 md5:6265e8efb4329ab9
type FieldsInput ¶
type FieldsInput struct { // Pointer 应该是 struct 类型的指针/*指向结构体的指针类型*/。 // TODO 这个属性名称不合适,可能会引起混淆。 // md5:7115141b84d46b4a Pointer interface{} // RecursiveOption 定义了如果属性是一个嵌入的结构体,如何递归地检索字段。默认情况下为 RecursiveOptionNone。 // md5:ad0b9ef1d1f1f1e5 RecursiveOption RecursiveOption }
FieldsInput 是函数 Fields 的输入参数结构体类型。 md5:dea3d8d32792f883
type RecursiveOption ¶
type RecursiveOption int
const ( X常量_RecursiveOptionNone RecursiveOption = iota // 如果字段是一个嵌入的结构体,不递归地将其字段作为映射获取。 md5:7e5b33b2b6192298 RecursiveOptionEmbedded // 如果字段是一个嵌入的结构体,递归地获取其字段作为map。 md5:5c2576800c0efe83 RecursiveOptionEmbeddedNoTag // 如果字段是嵌入的结构并且字段没有标签,递归地获取字段作为映射。 md5:24a441218c457b09 )
type X结构_Field ¶
type X结构_Field struct { Value reflect.Value // 字段的基础值。 md5:30c17ef0d945aeca Field reflect.StructField // 字段的底层字段。 md5:5d18dc4427e59bd7 // 从TagValue中获取标签名。这取决于TagValue。 md5:2abab33cf7d9aa7a TagName string // 获取标签值。 // 字段中可能有多个标签,但根据调用函数的规则,只能获取一个。 // md5:45a4365044272532 TagValue string }
X结构_Field包含一个结构字段的信息。 md5:937dc69e9da6620a
func Fields ¶
func Fields(in FieldsInput) ([]X结构_Field, error)
Fields 获取并以切片形式返回 `pointer` 的字段。 md5:7856c4ee9e72f56f
func TagFields ¶
TagFields 从`pointer`获取并返回结构体标签作为[]Field。
参数`pointer`应为struct/*struct类型。
请注意: 1. 它只从结构体中检索首字母大写的导出属性。 2. 应提供参数`priority`,它只检索具有给定标签的字段。 md5:55390bfc1f5537f2
func (*X结构_Field) IsEmbedded ¶
IsEmbedded 如果给定的字段是一个匿名字段(嵌入式),则返回true. md5:db717a9b06b1f0f5
func (*X结构_Field) IsExported ¶
IsExported 返回给定字段是否被导出。 md5:b863b7d714c969fc
func (*X结构_Field) OriginalKind ¶
OriginalKind 获取并返回字段 `f` 的Value对应的原始reflect.Kind。 md5:62d8a3604e2114ec
func (*X结构_Field) OriginalValue ¶
OriginalValue 获取并返回字段`f`的原始reflect.Value。 md5:0f37794c6e9ea990
func (*X结构_Field) TagAdditional ¶
TagAdditional 返回字段最常见的附加标签`additional/ad`的值。 md5:5fa6809b09e574f9
func (*X结构_Field) TagDefault ¶
TagDefault 返回字段最常用的标签 `default/d` 值。 md5:05a366c7274145a7
func (*X结构_Field) TagDescription ¶
TagDescription 返回字段最常用的标签 `description/des/dc` 的值。 md5:d9c639d81519a9e6
func (*X结构_Field) TagExample ¶
TagExample 返回字段中最常用的标签 `example/eg` 的值。 md5:db6ca440d0e1c869
func (*X结构_Field) TagJsonName ¶
TagJsonName 返回字段的`json`标签名称字符串。 md5:5c012e1a7ddc21a4
func (*X结构_Field) TagLookup ¶
TagLookup 从标签字符串中返回与给定键关联的值。如果键在标签中存在,即使值为空,也会返回。否则,返回的值将是空字符串。ok返回值报告了该值是否明确设置在标签字符串中。如果标签不具备常规格式,Lookup返回的值是未定义的。 md5:d4bff95e89bd22d0
func (*X结构_Field) TagPriorityName ¶
TagPriorityName 检查并返回与`gtag.StructTagPriority`中的名称项匹配的标签名。 如果没有按照`gtag.StructTagPriority`设置标签名,它将返回属性字段的Name。 md5:5323769f60ec004e
func (*X结构_Field) TagSummary ¶
TagSummary 返回字段最常使用的标签 `summary/sum/sm` 的值。 md5:73fda199beee8e03