咨询:DolphinDB JIT不支持循环break/continue?是代码问题或后续会支持?
DolphinDB JIT中break/continue无法正常运行的问题解答
你遇到的这个情况并不是代码的问题,而是DolphinDB 1.01及以上版本的JIT编译器目前暂不支持在for或while循环中使用break和continue语句。
具体情况说明
你提供的两段测试代码:
@jit def foo() { for(i in 1..10) { break } } foo()
@jit def foo() { i = 0 while(i < 100) { continue } } foo()
语法上完全合规,但由于当前JIT的实现限制,编译器无法处理这类循环控制语句,所以执行时会抛出异常。
临时解决方案
如果你的业务逻辑必须依赖break/continue,可以暂时去掉@jit装饰器,使用普通函数执行。虽然没有JIT的性能加成,但能保证代码逻辑正常运行。
后续支持情况
DolphinDB的JIT功能还在持续迭代完善中,这类常用的循环控制语句是官方后续版本重点优化支持的方向之一,你可以关注官方的版本更新日志,等待功能覆盖。
内容的提问来源于stack exchange,提问作者Ju Piece
相关产品推荐
相关产品推荐

