feat: 完善 normalizeInputValue 支持 valuex.Accessor 并优化代码
- 在 valuex.Accessor 接口中添加 Raw() 方法 - normalizeInputValue 支持 valuex.Accessor 和 []valuex.Accessor 类型 - 提取 normalizeAccessorSlice 泛型函数消除重复代码 - 使用 switch 语句替代 if-else 链提高可读性 - 添加相关测试用例确保功能正确性
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package valuex
|
||||
|
||||
import "reflect"
|
||||
|
||||
// nilAccessor 是一个空实现,用于表示不存在或空值的访问器
|
||||
// 所有转换方法都会返回对应类型的零值
|
||||
type nilAccessor struct{}
|
||||
@@ -12,6 +14,10 @@ func (n *nilAccessor) Lookup(path string) (Accessor, bool) {
|
||||
return n, false
|
||||
}
|
||||
|
||||
func (n *nilAccessor) Raw() reflect.Value {
|
||||
return reflect.Value{}
|
||||
}
|
||||
|
||||
// Ptr 返回 nil
|
||||
func (n *nilAccessor) Ptr() any {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user