我正在将一些python代码转换为rebol,我刚刚遇到一个“continue”指令。它中断循环的处理,转到循环的下一个迭代。在
我觉得这个词很优雅,可读性很强。在
我在那里找到了一些答案:(用法语),但没有真正的“优雅”:
http://pl.legoff.free.fr/dotclear/vf/index.php/post/2003/01/05/Equivalent-d-un-Continue-ou-Next-dans-une-bouc
由于这种转换已经有10年的历史了,也许Rebol从那以后做了一些改进?在
Tags:
CONTINUE不在Rebol2中。但它在Rebol3中运行良好:
您将得到输出:
据我所知,在Rebol2中没有办法实现continue。
好吧,根据@DocKimbel的回答,您可以在Rebol2中执行以下操作:
^{pr2}$注意:BREAK-and-CONTINUE的内部实现方法使用了与THROW-in-Rebol相同的机制……这是相对轻量级的,不是异常处理。要知道,THROW是您应该用于错误处理的而不是,而现代的Rebol构建(Ren/C)甚至不允许抛出一个。你应该改用FAIL。在
您可以在Rebol2中使用异常:
如果要在循环中处理自定义异常,可以使用/name细化,如catch/name[…]'continue来避免捕获其他异常。甚至可以重写迭代器以透明的方式为您实现这一点,但要付出一些较慢的性能代价。在
在R2循环1也可以工作,开销比CATCH少
相关问题 更多 >
编程相关推荐