reflux/valuex/accessor.go
what baad0cadfc feat: 完善 normalizeInputValue 支持 valuex.Accessor 并优化代码
- 在 valuex.Accessor 接口中添加 Raw() 方法
- normalizeInputValue 支持 valuex.Accessor 和 []valuex.Accessor 类型
- 提取 normalizeAccessorSlice 泛型函数消除重复代码
- 使用 switch 语句替代 if-else 链提高可读性
- 添加相关测试用例确保功能正确性
2025-12-16 16:14:46 +08:00

91 lines
2.1 KiB
Go

package valuex
import "reflect"
// Accessor 为参数值转换相关接口
type Accessor interface {
// Lookup 根据路径查找并返回对应值的访问器
Lookup(path string) (Accessor, bool)
// Raw 返回底层的 reflect.Value
Raw() reflect.Value
// Ptr 返回指向当前值的指针
Ptr() any
// Any 将当前值转换为 any 类型
Any() any
// Bool 将当前值转换为 bool 类型
Bool() bool
// Float64 将当前值转换为 float64 类型
Float64() float64
// Float32 将当前值转换为 float32 类型
Float32() float32
// Int64 将当前值转换为 int64 类型
Int64() int64
// Int32 将当前值转换为 int32 类型
Int32() int32
// Int16 将当前值转换为 int16 类型
Int16() int16
// Int8 将当前值转换为 int8 类型
Int8() int8
// Int 将当前值转换为 int 类型
Int() int
// Uint 将当前值转换为 uint 类型
Uint() uint
// Uint64 将当前值转换为 uint64 类型
Uint64() uint64
// Uint32 将当前值转换为 uint32 类型
Uint32() uint32
// Uint16 将当前值转换为 uint16 类型
Uint16() uint16
// Uint8 将当前值转换为 uint8 类型
Uint8() uint8
// String 将当前值转换为 string 类型
String() string
// StringMapString 将当前值转换为 map[string]string 类型
StringMapString() map[string]string
// StringMapStringSlice 将当前值转换为 map[string][]string 类型
StringMapStringSlice() map[string][]string
// StringMapBool 将当前值转换为 map[string]bool 类型
StringMapBool() map[string]bool
// StringMapInt 将当前值转换为 map[string]int 类型
StringMapInt() map[string]int
// StringMapInt64 将当前值转换为 map[string]int64 类型
StringMapInt64() map[string]int64
// StringMap 将当前值转换为 map[string]any 类型
StringMap() map[string]any
// Slice 将当前值转换为 []any 切片
Slice() []any
// BoolSlice 将当前值转换为 []bool 切片
BoolSlice() []bool
// StringSlice 将当前值转换为 []string 切片
StringSlice() []string
// IntSlice 将当前值转换为 []int 切片
IntSlice() []int
}