package valuex import "reflect" // nilAccessor 是一个空实现,用于表示不存在或空值的访问器 // 所有转换方法都会返回对应类型的零值 type nilAccessor struct{} // Nil 为全局唯一的 nilAccessor 实例 var Nil = &nilAccessor{} // Lookup 总是返回自身和 false,表示路径不存在 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 } // Any 返回 nil func (n *nilAccessor) Any() any { return nil } // Bool 返回 false func (n *nilAccessor) Bool() bool { return false } // Float64 返回 0 func (n *nilAccessor) Float64() float64 { return 0 } // Float32 返回 0 func (n *nilAccessor) Float32() float32 { return 0 } // Int64 返回 0 func (n *nilAccessor) Int64() int64 { return 0 } // Int32 返回 0 func (n *nilAccessor) Int32() int32 { return 0 } // Int16 返回 0 func (n *nilAccessor) Int16() int16 { return 0 } // Int8 返回 0 func (n *nilAccessor) Int8() int8 { return 0 } // Int 返回 0 func (n *nilAccessor) Int() int { return 0 } // Uint 返回 0 func (n *nilAccessor) Uint() uint { return 0 } // Uint64 返回 0 func (n *nilAccessor) Uint64() uint64 { return 0 } // Uint32 返回 0 func (n *nilAccessor) Uint32() uint32 { return 0 } // Uint16 返回 0 func (n *nilAccessor) Uint16() uint16 { return 0 } // Uint8 返回 0 func (n *nilAccessor) Uint8() uint8 { return 0 } // String 返回空字符串 func (n *nilAccessor) String() string { return "" } // StringMapString 返回 nil func (n *nilAccessor) StringMapString() map[string]string { return nil } // StringMapStringSlice 返回 nil func (n *nilAccessor) StringMapStringSlice() map[string][]string { return nil } // StringMapBool 返回 nil func (n *nilAccessor) StringMapBool() map[string]bool { return nil } // StringMapInt 返回 nil func (n *nilAccessor) StringMapInt() map[string]int { return nil } // StringMapInt64 返回 nil func (n *nilAccessor) StringMapInt64() map[string]int64 { return nil } // StringMap 返回 nil func (n *nilAccessor) StringMap() map[string]any { return nil } // Slice 返回 nil func (n *nilAccessor) Slice() []any { return nil } // BoolSlice 返回 nil func (n *nilAccessor) BoolSlice() []bool { return nil } // StringSlice 返回 nil func (n *nilAccessor) StringSlice() []string { return nil } // IntSlice 返回 nil func (n *nilAccessor) IntSlice() []int { return nil }