早期在jsonparser中中止ArrayEach回调

时间:2016-06-10 18:10:14

标签: go

看看这个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并验证为继续指示符。但是如果没有完全复制这段代码会有更干净的方法吗?

0 个答案:

没有答案