feat: 添加 Lookuper 接口和 MustLookup 方法

- 新增 Lookuper 接口,提供 Lookup 和 MustLookup 两种路径查找方式
- Accessor 接口继承 Lookuper,保持向后兼容
- MustLookup 在路径不存在时返回 Nil 访问器,简化调用代码
- 更新 fieldx.Schema 使用 Lookuper 接口,支持更灵活的数据源
- 添加 Required 字段选项,控制字段不存在时的行为
This commit is contained in:
2026-01-05 16:59:31 +08:00
parent b73099d205
commit 39da1d55dd
4 changed files with 55 additions and 15 deletions

10
rfx.go
View File

@@ -566,6 +566,16 @@ func (r *rfx) Lookup(path string) (valuex.Accessor, bool) {
return valuex.Nil, false
}
// MustLookup 根据路径查找并直接返回对应值的访问器
// 如果路径不存在,返回 valuex.Nil 访问器(所有方法返回零值)
func (r *rfx) MustLookup(path string) valuex.Accessor {
v := r.Get(path)
if v.Exists() {
return v
}
return valuex.Nil
}
// Ptr 返回指向当前值的指针
func (r *rfx) Ptr() any {
v := r.value