Documentation
¶
Overview ¶
Package reflect 基于 reflect 库实现一些方便的功能
Index ¶
- func FromJsonvalueToAny(target any, jv *jsonvalue.V, tag string) error
- func ReadAny(v any, reader ValueReader)
- func ReadAnyToJsonvalue(v any, tag string) (*jsonvalue.V, error)
- func ReadArray(v any, reader ValueReader)
- func ReadMap(v any, reader ValueReader)
- func ReadSlice(v any, reader ValueReader)
- func ReadStruct(v any, reader ValueReader)
- type FieldDesc
- type SimpleValueReadResultItem
- type SimpleValueReader
- func (r *SimpleValueReader) Clear()
- func (r *SimpleValueReader) ReadArray(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadBool(i int, f FieldDesc, v bool)
- func (r *SimpleValueReader) ReadChan(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadComplex128(i int, f FieldDesc, v complex128)
- func (r *SimpleValueReader) ReadFloat32(i int, f FieldDesc, v float32)
- func (r *SimpleValueReader) ReadFloat64(i int, f FieldDesc, v float64)
- func (r *SimpleValueReader) ReadFunc(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadInt64(i int, f FieldDesc, v int64)
- func (r *SimpleValueReader) ReadInterface(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadMap(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadNil(i int, f FieldDesc)
- func (r *SimpleValueReader) ReadSlice(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadString(i int, f FieldDesc, v string)
- func (r *SimpleValueReader) ReadStruct(i int, f FieldDesc, v any)
- func (r *SimpleValueReader) ReadUint64(i int, f FieldDesc, v uint64)
- func (r *SimpleValueReader) ReadUintptr(i int, f FieldDesc, v uintptr)
- func (r *SimpleValueReader) ReadUnsafePointer(i int, f FieldDesc, v unsafe.Pointer)
- type TypeDesc
- type ValueReader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FromJsonvalueToAny ¶
FromJsonvalueToAny 将 *jsonvalue.V 类型转换为 any 类型的值, 这是 ReadAnyToJsonvalue 的反操作
WARN: beta feature
func ReadAnyToJsonvalue ¶
ReadAnyToJsonvalue 读取一个基于 struct tag 的值到 *jsonvalue.V 类型
WARN: beta feature
func ReadArray ¶
func ReadArray(v any, reader ValueReader)
ReadArray 读取数组类型的值。除了 reflect.Array 类型之外什么事情都不做
func ReadMap ¶
func ReadMap(v any, reader ValueReader)
ReadMap 读取 map 类型的值。除了 reflect.Map 类型之外什么事情都不做
func ReadSlice ¶
func ReadSlice(v any, reader ValueReader)
ReadSlice 读取切片类型的值。除了 reflect.Slice 类型之外其他什么类型都不做
func ReadStruct ¶
func ReadStruct(v any, reader ValueReader)
ReadStruct 读取结构体类型的值。注意, 仅 reflect.Struct 类型有效, 其他类型什么都不做
Types ¶
type FieldDesc ¶
type FieldDesc struct {
// TypeDesc 字段类型描述
TypeDesc TypeDesc
// StructFieldName struct 类型的字段名称
StructFieldName string
// StructTag 字段标签
StructTag reflect.StructTag
// AnonymousStructField 是否为 struct 类型的匿名字段
AnonymousStructField bool
// MapKey map 类型的键值
MapKey any
// MapValue map 类型的值
MapValue any
}
FieldDesc 字段描述
type SimpleValueReadResultItem ¶
type SimpleValueReadResultItem struct {
Index int
Desc FieldDesc
Read struct {
Nil bool
Bool bool
Int64 bool
Uint64 bool
Uintptr bool
Float32 bool
Float64 bool
Complex128 bool
Array bool
Chan bool
Func bool
Interface bool
Map bool
Slice bool
String bool
Struct bool
UnsafePointer bool
}
Value struct {
Bool bool
Int64 int64
Uint64 uint64
Uintptr uintptr
Float32 float32
Float64 float64
Complex128 complex128
Array any
Chan any
Func any
Interface any
Map any
Slice any
String string
Struct any
UnsafePointer unsafe.Pointer
}
}
type SimpleValueReader ¶
type SimpleValueReader struct {
Results []SimpleValueReadResultItem
}
SimpleValueReader 最简单化的字段值读取器, 按顺序简单地罗列获得的值
func NewSimpleValueReader ¶
func NewSimpleValueReader() *SimpleValueReader
NewSimpleValueReader new(SimpleValueReader)
func (*SimpleValueReader) Clear ¶
func (r *SimpleValueReader) Clear()
func (*SimpleValueReader) ReadArray ¶
func (r *SimpleValueReader) ReadArray(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadBool ¶
func (r *SimpleValueReader) ReadBool(i int, f FieldDesc, v bool)
func (*SimpleValueReader) ReadChan ¶
func (r *SimpleValueReader) ReadChan(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadComplex128 ¶
func (r *SimpleValueReader) ReadComplex128(i int, f FieldDesc, v complex128)
func (*SimpleValueReader) ReadFloat32 ¶
func (r *SimpleValueReader) ReadFloat32(i int, f FieldDesc, v float32)
func (*SimpleValueReader) ReadFloat64 ¶
func (r *SimpleValueReader) ReadFloat64(i int, f FieldDesc, v float64)
func (*SimpleValueReader) ReadFunc ¶
func (r *SimpleValueReader) ReadFunc(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadInt64 ¶
func (r *SimpleValueReader) ReadInt64(i int, f FieldDesc, v int64)
func (*SimpleValueReader) ReadInterface ¶
func (r *SimpleValueReader) ReadInterface(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadNil ¶
func (r *SimpleValueReader) ReadNil(i int, f FieldDesc)
func (*SimpleValueReader) ReadSlice ¶
func (r *SimpleValueReader) ReadSlice(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadString ¶
func (r *SimpleValueReader) ReadString(i int, f FieldDesc, v string)
func (*SimpleValueReader) ReadStruct ¶
func (r *SimpleValueReader) ReadStruct(i int, f FieldDesc, v any)
func (*SimpleValueReader) ReadUint64 ¶
func (r *SimpleValueReader) ReadUint64(i int, f FieldDesc, v uint64)
func (*SimpleValueReader) ReadUintptr ¶
func (r *SimpleValueReader) ReadUintptr(i int, f FieldDesc, v uintptr)
func (*SimpleValueReader) ReadUnsafePointer ¶
func (r *SimpleValueReader) ReadUnsafePointer(i int, f FieldDesc, v unsafe.Pointer)
type TypeDesc ¶
type TypeDesc struct {
// 底层类型名称, 不包含 *
TypeName string `json:"type_name"`
// package 名称
PackageName string `json:"package_name"`
// 指针层级, 也就是 * 的个数
PointerLevels int `json:"pointer_levels"`
// 包路径信息
Path struct {
Prefix string `json:"prefix,omitempty"` // 相当于 dir 部分
Full string `json:"full,omitempty"` // 完整的 path + package 路径名
} `json:"path"`
Kind reflect.Kind `json:"kind"`
}
TypeDesc 描述一个类型的各种信息
type ValueReader ¶
type ValueReader interface {
ReadNil(i int, f FieldDesc)
ReadBool(i int, f FieldDesc, v bool)
ReadInt64(i int, f FieldDesc, v int64)
ReadUint64(i int, f FieldDesc, v uint64)
ReadUintptr(i int, f FieldDesc, v uintptr)
ReadFloat32(i int, f FieldDesc, v float32)
ReadFloat64(i int, f FieldDesc, v float64)
ReadComplex128(i int, f FieldDesc, v complex128)
ReadArray(i int, f FieldDesc, v any)
ReadChan(i int, f FieldDesc, v any)
ReadFunc(i int, f FieldDesc, v any)
ReadInterface(i int, f FieldDesc, v any)
ReadMap(i int, f FieldDesc, v any)
ReadSlice(i int, f FieldDesc, v any)
ReadString(i int, f FieldDesc, v string)
ReadStruct(i int, f FieldDesc, v any)
ReadUnsafePointer(i int, f FieldDesc, v unsafe.Pointer)
}
ValueReader 字段值读取器。其中第一个的 i 参数只在 struct、slice 和 array 有效, 其他情况都为 -1
Click to show internal directories.
Click to hide internal directories.