用法 一
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 control.Exception用法及代码示例
- Scala control.NonFatal用法及代码示例
- Scala control.ControlThrowable用法及代码示例
- Scala control.TailCalls用法及代码示例
- Scala convert.ImplicitConversions用法及代码示例
- Scala concurrent.Future用法及代码示例
- Scala concurrent.BlockContext用法及代码示例
- Scala compiletime.summonFrom用法及代码示例
- Scala collection.Iterator用法及代码示例
- Scala compiletime.error用法及代码示例
- Scala collection.IterableOnce用法及代码示例
- Scala compiletime.erasedValue用法及代码示例
- Scala compiletime.codeOf用法及代码示例
- Scala compiletime.uninitialized用法及代码示例
- Scala collection.JavaConverters用法及代码示例
- Scala compiletime.requireConst用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
- Scala StrictOptimizedIterableOps.sliding用法及代码示例
- Scala Searching.SearchResult用法及代码示例
- Scala ::.collectFirst用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 control.Breaks。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。