gstructs

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package gstructs 提供结构体信息检索的功能

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FieldMap

func FieldMap(in FieldMapInput) (map[string]Field, error)

FieldMap 将结构体字段信息转换为map

func ParseTag

func ParseTag(tagStr string) map[string]string

ParseTag 解析标签字符串为map

func TagMapField

func TagMapField(object interface{}, priority []string) (map[string]Field, error)

TagMapField 获取结构体的标签字段映射

func TagMapName

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

TagMapName 获取结构体的标签名称映射

Types

type Field

type Field struct {
	Value    reflect.Value       // 字段的底层值
	Field    reflect.StructField // 字段的底层字段信息
	TagName  string              // 检索到的标签名
	TagValue string              // 检索到的标签值
}

Field 包含结构体字段的信息

func Fields

func Fields(in FieldsInput) ([]Field, error)

Fields 获取结构体的字段信息

func TagFields

func TagFields(pointer interface{}, priority []string) ([]Field, error)

TagFields 获取结构体的标签字段

func (*Field) IsEmbedded

func (f *Field) IsEmbedded() bool

IsEmbedded 返回字段是否为嵌入字段

func (*Field) IsEmpty

func (f *Field) IsEmpty() bool

IsEmpty 检查字段值是否为空

func (*Field) IsExported

func (f *Field) IsExported() bool

IsExported 返回字段是否为导出字段

func (*Field) IsNil

func (f *Field) IsNil(traceSource ...bool) bool

IsNil 检查字段值是否为nil

func (*Field) Kind

func (f *Field) Kind() reflect.Kind

Kind 返回字段值的Kind

func (*Field) Name

func (f *Field) Name() string

Name 返回字段名

func (*Field) OriginalKind

func (f *Field) OriginalKind() reflect.Kind

OriginalKind 返回字段值的原始Kind(解引用后)

func (*Field) OriginalValue

func (f *Field) OriginalValue() reflect.Value

OriginalValue 返回字段的原始值(解引用后)

func (*Field) Tag

func (f *Field) Tag(key string) string

Tag 返回字段标签中与key关联的值

func (*Field) TagAdditional

func (f *Field) TagAdditional() string

TagAdditional 返回字段的附加标签

func (*Field) TagDefault

func (f *Field) TagDefault() string

TagDefault 返回字段的默认值标签

func (*Field) TagDescription

func (f *Field) TagDescription() string

TagDescription 返回字段的描述标签

func (*Field) TagExample

func (f *Field) TagExample() string

TagExample 返回字段的示例标签

func (*Field) TagIn

func (f *Field) TagIn() string

TagIn 返回字段的in标签

func (*Field) TagJsonName

func (f *Field) TagJsonName() string

TagJsonName 返回字段的json标签名

func (*Field) TagLookup

func (f *Field) TagLookup(key string) (value string, ok bool)

TagLookup 返回字段标签中与key关联的值和是否存在的标志

func (*Field) TagMap

func (f *Field) TagMap() map[string]string

TagMap 返回字段的所有标签及其值的映射

func (*Field) TagParam

func (f *Field) TagParam() string

TagParam 返回字段的参数标签

func (*Field) TagPriorityName

func (f *Field) TagPriorityName() string

TagPriorityName 返回字段的优先级标签名称

func (*Field) TagStr

func (f *Field) TagStr() string

TagStr 返回字段的标签字符串

func (*Field) TagSummary

func (f *Field) TagSummary() string

TagSummary 返回字段的摘要标签

func (*Field) TagValid

func (f *Field) TagValid() string

TagValid 返回字段的验证标签

func (*Field) Type

func (f *Field) Type() Type

Type 返回字段类型

type FieldMapInput

type FieldMapInput struct {
	Pointer          interface{}
	PriorityTagArray []string
	RecursiveOption  RecursiveOption
}

FieldMapInput 定义FieldMap函数的输入参数

type FieldsInput

type FieldsInput struct {
	Pointer         interface{}     // 应该是结构体指针
	RecursiveOption RecursiveOption // 递归选项
}

FieldsInput 定义Fields函数的输入参数

type RecursiveOption

type RecursiveOption int

RecursiveOption 定义递归选项

const (
	RecursiveOptionNone RecursiveOption = iota
	RecursiveOptionEmbedded
	RecursiveOptionEmbeddedNoTag
)

type Type

type Type struct {
	reflect.Type
}

Type 包装reflect.Type提供额外功能

func StructType

func StructType(object interface{}) (*Type, error)

StructType 获取结构体类型信息

func (Type) FieldKeys

func (t Type) FieldKeys() []string

FieldKeys 返回当前结构体/映射的键

func (Type) Signature

func (t Type) Signature() string

Signature 返回类型的唯一签名

Jump to

Keyboard shortcuts

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