看看这个callback(第412行),是否有可能从回调函数本身内部退出回调循环?或者我是否需要以某种方式将其包装或扩展以创建该功能?
这是代码:
jsonparser.ArrayEach(data, func(value []byte, dataType jsonparser.ValueType, offset int, err error) {
if v, err := jsonparser.GetUnsafeString(value, "username"); nil == err && v == lookFor {
z = v
return // Abort in some way?
}
})
库仍然在等待类似查询的更新,所以现在这是查找值的最便宜的方法,到目前为止仍然优于任何完整的json
解析器。基准测试速度提高9.21倍至9.38倍)。所以,我的目标是LIMIT 1
- ish解决方案。
我正在考虑在界面上进行完整的复制粘贴和制作克隆版本并制作..
if t != NotExist {
cb(v, t, o, e)
}
...成
if t != NotExist {
boolVal = cb(v, t, o, e) // Extending it to have a return value
}
...返回boolean
并验证为继续指示符。但是如果没有完全复制这段代码会有更干净的方法吗?