当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala control.Breaks用法及代码示例


用法 一

class Breaks

提供break 控制抽象.

break 方法使用 ControlThrowable 将控制权转移到堆栈到封闭的 breakable

它通常用于突然终止 for 循环,但可用于从任意计算返回。

控制在 breakable 之后恢复。

如果没有匹配的 breakable ,则 break 抛出的 BreakControl 以通常的方式处理:如果没有被捕获,它可能会终止当前的 Thread

BreakControl 不携带堆栈跟踪,因此默认异常处理程序不会打印有用的诊断信息;如果没有匹配的 breakable ,则没有编译时警告。

使用 NonFatal 的 catch 子句与 break 一起使用是安全的;它不会将控制权转移到封闭的 breakable

如果方法是在同一个接收器对象上调用的,那么 breakable 匹配对 break 的调用,这可能是便利值 Breaks

示例用法:

val mybreaks = new Breaks
import mybreaks.{break, breakable}

breakable {
  for (x <- xs) {
    if (done) break()
    f(x)
  }
}

Breaks 的一个实例对break 的调用将永远不会在其他实例的breakable 处恢复。

任何介入的异常处理程序都应使用 NonFatal ,或使用 Try 进行评估:

val mybreaks = new Breaks
import mybreaks.{break, breakable}

breakable {
  for (x <- xs) Try { if (quit) break else f(x) }.foreach(println)
}

伴生:

object

源码:

Breaks.scala

用法 二

object Breaks extends Breaks

可用于中断控制抽象的对象。

示例用法:

import Breaks.{break, breakable}

breakable {
  for (...) {
    if (...) break
  }
}

伴生:

class

源码:

Breaks.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 control.Breaks。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。