gstructs

package
v0.0.0-...-babeac7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

包gstructs提供了用于获取结构体信息的函数。 md5:ff6813ae5e3453ba

Index

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

func ParseTag(tag string) map[string]string

ParseTag 将标签字符串解析为映射。 例如: ParseTag(`v:"required" p:"id" d:"1"`)) => map[v:required p:id d:1]。 md5:967d381052c3a2d8

func TagMapField

func TagMapField(object interface{}, priority []string) (map[string]X结构_Field, error)

TagMapField 从 `pointer` 中获取结构体标签作为 map[tag]Field,然后返回它。 参数 `object` 应该是 struct 类型、*struct 类型、struct 切片或 []*struct 类型之一。

注意: 1. 它只会从结构体中检索首字母大写的导出属性。 2. 需要提供参数 `priority`,只检索具有给定标签的字段。 3. 如果一个字段没有指定标签,它将使用其字段名称作为结果映射的键。 md5:ba865b4214b27332

func TagMapName

func TagMapName(pointer interface{}, priority []string) (map[string]string, error)

TagMapName从`pointer`获取并返回结构体标签作为map[tag]attribute。

参数`pointer`应为结构体或*struct类型。

注意: 1. 它仅从结构体中检索首字母大写的导出属性。 2. 需要提供参数`priority`,它只检索具有给定标签的字段。 3. 如果一个字段没有指定标签,它将使用其字段名称作为结果映射的键。 md5:0eb7c62c8a6f7e09

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

func TagFields(pointer interface{}, priority []string) ([]X结构_Field, error)

TagFields 从`pointer`获取并返回结构体标签作为[]Field。

参数`pointer`应为struct/*struct类型。

请注意: 1. 它只从结构体中检索首字母大写的导出属性。 2. 应提供参数`priority`,它只检索具有给定标签的字段。 md5:55390bfc1f5537f2

func (*X结构_Field) IsEmbedded

func (f *X结构_Field) IsEmbedded() bool

IsEmbedded 如果给定的字段是一个匿名字段(嵌入式),则返回true. md5:db717a9b06b1f0f5

func (*X结构_Field) IsEmpty

func (f *X结构_Field) IsEmpty() bool

IsEmpty 检查并返回这个字段的值是否为空。 md5:125094bfbb4cc317

func (*X结构_Field) IsExported

func (f *X结构_Field) IsExported() bool

IsExported 返回给定字段是否被导出。 md5:b863b7d714c969fc

func (*X结构_Field) Kind

func (f *X结构_Field) Kind() reflect.Kind

Kind返回Field `f`的Value对应的reflect.Kind。 md5:6c3599f3dff91746

func (*X结构_Field) Name

func (f *X结构_Field) Name() string

Name 返回给定字段的名称。 md5:bfd1563575d622f5

func (*X结构_Field) OriginalKind

func (f *X结构_Field) OriginalKind() reflect.Kind

OriginalKind 获取并返回字段 `f` 的Value对应的原始reflect.Kind。 md5:62d8a3604e2114ec

func (*X结构_Field) OriginalValue

func (f *X结构_Field) OriginalValue() reflect.Value

OriginalValue 获取并返回字段`f`的原始reflect.Value。 md5:0f37794c6e9ea990

func (*X结构_Field) Tag

func (f *X结构_Field) Tag(key string) string

Tag 函数从标签字符串中返回与给定键关联的值。如果标签中没有该键,Tag 函数将返回空字符串。 md5:1f7397ec7f558f60

func (*X结构_Field) TagAdditional

func (f *X结构_Field) TagAdditional() string

TagAdditional 返回字段最常见的附加标签`additional/ad`的值。 md5:5fa6809b09e574f9

func (*X结构_Field) TagDefault

func (f *X结构_Field) TagDefault() string

TagDefault 返回字段最常用的标签 `default/d` 值。 md5:05a366c7274145a7

func (*X结构_Field) TagDescription

func (f *X结构_Field) TagDescription() string

TagDescription 返回字段最常用的标签 `description/des/dc` 的值。 md5:d9c639d81519a9e6

func (*X结构_Field) TagExample

func (f *X结构_Field) TagExample() string

TagExample 返回字段中最常用的标签 `example/eg` 的值。 md5:db6ca440d0e1c869

func (*X结构_Field) TagIn

func (f *X结构_Field) TagIn() string

TagIn 函数返回字段中最常用的标签`in`值。 md5:422dfe5b89aad3c4

func (*X结构_Field) TagJsonName

func (f *X结构_Field) TagJsonName() string

TagJsonName 返回字段的`json`标签名称字符串。 md5:5c012e1a7ddc21a4

func (*X结构_Field) TagLookup

func (f *X结构_Field) TagLookup(key string) (value string, ok bool)

TagLookup 从标签字符串中返回与给定键关联的值。如果键在标签中存在,即使值为空,也会返回。否则,返回的值将是空字符串。ok返回值报告了该值是否明确设置在标签字符串中。如果标签不具备常规格式,Lookup返回的值是未定义的。 md5:d4bff95e89bd22d0

func (*X结构_Field) TagMap

func (f *X结构_Field) TagMap() map[string]string

TagMap 返回字段的所有标签及其对应的值字符串作为映射。 md5:80b1670604d9eef4

func (*X结构_Field) TagParam

func (f *X结构_Field) TagParam() string

TagParam 返回字段最常见的标签 `param/p` 的值。 md5:4a9896d7eafb2571

func (*X结构_Field) TagPriorityName

func (f *X结构_Field) TagPriorityName() string

TagPriorityName 检查并返回与`gtag.StructTagPriority`中的名称项匹配的标签名。 如果没有按照`gtag.StructTagPriority`设置标签名,它将返回属性字段的Name。 md5:5323769f60ec004e

func (*X结构_Field) TagStr

func (f *X结构_Field) TagStr() string

TagStr 返回字段的标签字符串。 md5:d608cb4dcc85989d

func (*X结构_Field) TagSummary

func (f *X结构_Field) TagSummary() string

TagSummary 返回字段最常使用的标签 `summary/sum/sm` 的值。 md5:73fda199beee8e03

func (*X结构_Field) TagValid

func (f *X结构_Field) TagValid() string

TagValid 返回字段最常用的标签 `valid/v` 的值。 md5:94454fb9da424ab5

func (*X结构_Field) Type

func (f *X结构_Field) Type() X结构_Type

Type 返回给定字段的类型。 请注意,此Type不是reflect.Type。如果需要reflect.Type,请使用Field.Type().Type。 md5:27a135d33cbd8f21

func (*X结构_Field) X是否为Nil

func (f *X结构_Field) X是否为Nil(traceSource ...bool) bool

X是否为Nil 检查并返回此Field的值是否为nil。 md5:6637754b5d35923d

type X结构_Type

type X结构_Type struct {
	reflect.Type
}

X结构_Type 是 reflect.X结构_Type 的增强版本,提供了更多功能。 md5:8ebe2d126efacb49

func StructType

func StructType(object interface{}) (*X结构_Type, error)

StructType 获取并返回指定结构体的类型。 参数 `object` 应为结构体类型、指向结构体的指针类型、结构体切片类型或指向结构体的切片类型。 md5:023b27218d435b61

func (X结构_Type) FieldKeys

func (t X结构_Type) FieldKeys() []string

FieldKeys 返回当前结构体/映射的键。 md5:6361c05b8d9fe2e0

func (X结构_Type) Signature

func (t X结构_Type) Signature() string

Signature 返回此类型的一个唯一字符串。 md5:cba9a7124f69dbaa

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL